La suppression de créer dynamiquement des contrôles
Je suis tenter de retirer dynamiquement des contrôles créés en C# 2008 asp.net
Les contrôles sont créés ici:
int i;
for (i = 0; i < myCount; i += 1)
{
TextBox txtAuto = new TextBox();
TextBox txtModel = new TextBox();
TextBox txtMiles = new TextBox();
TextBox txtVINumber = new TextBox();
TextBox txtPlateNumber = new TextBox();
txtAuto.ID = "txtVehAuto" + i.ToString();
txtModel.ID = "txtVehModel" + i.ToString();
txtMiles.ID = "txtVehMilage" + i.ToString();
txtVINumber.ID = "txtVehVINumber" + i.ToString();
txtPlateNumber.ID = "txtVehPlate" + i.ToString();
phAuto.Controls.Add(txtAuto);
phModel.Controls.Add(txtModel);
phMiles.Controls.Add(txtMiles);
phVINumber.Controls.Add(txtVINumber);
phPlateNumber.Controls.Add(txtPlateNumber);
dyntxtAuto[i] = txtAuto;
dyntxtModel[i] = txtModel;
dyntxtMiles[i] = txtMiles;
dyntxtVINumber[i] = txtVINumber;
dyntxtPlateNumber[i] = txtPlateNumber;
LiteralControl literalBreak = new LiteralControl("<br />");
phAuto.Controls.Add(literalBreak);
phModel.Controls.Add(literalBreak);
phMiles.Controls.Add(literalBreak);
phVINumber.Controls.Add(literalBreak);
phPlateNumber.Controls.Add(literalBreak);
}
}
Comment puis-je supprimer les contrôles?
L'utilisateur cliquez sur "soumettre" à laquelle l'utilisateur a entré des données dans la db. La page retrun à lui-même (avec des champs vides). Je veux supprimer les contrôles dynamiques après que les données ont été écrites sur la db. Supprimer la signification de supprimer, de ne pas cacher. J'ai essayé de mettre le ViewState faux, mais il n'aide pas.
- Pourriez-vous préciser un peu? Voulez-vous supprimer les contrôles après que l'utilisateur effectue une action, ou après un certain laps de temps? Quand vous dites "supprimer" entendez-vous "cacher?"
- Comment avez-vous l'intention de le supprimer? Est-ce dû à certaines actions comme un clic sur un bouton ou quelque chose?
- L'utilisateur cliquez sur "soumettre" à laquelle l'utilisateur a entré des données dans la db. La page retrun à lui-même (avec des champs vides). Je veux supprimer les contrôles dynamiques après que les données ont été écrites sur la db. Supprimer la signification de supprimer, de ne pas cacher. J'ai essayé de mettre le ViewState faux, mais il n'aide pas.
Vous devez vous connecter pour publier un commentaire.
Pouvez-vous faire cela?
Il existe d'autres contrôles dans ces contrôles que je ne suis pas au courant de ce que vous ne voulez pas effacé?
Cela dépend de ce que vous essayez de faire...
Si vous êtes tout simplement de vouloir supprimer TOUS les contrôles au sein de votre espace réservé "phAuto", "phModel", etc... vous pouvez utiliser le caractère *.Les contrôles.Clear(); la méthode.
Cependant, si vous cherchez à supprimer les contrôles individuels... vous pouvez utiliser le caractère *.FindControl(string id) de la méthode. Il sera de retour un générique de Contrôle de l'objet avec l'id que vous transmettez. Vous pouvez ensuite passer de l'objet à l' *.Les contrôles.Supprimer(...) de la méthode.
Si vous êtes désireux d'utiliser cette Page.FindControl(), Page.Les contrôles.Remove(), etc, ET vous êtes à l'aide de pages maîtres... cela devient un peu difficile. Lire cet article à apprendre à propos de Récursive de Contrôle de la recherche.
Je suis encore nouveau pour .NET moi-même et je suis à la recherche de nouvelles (et plus facile) façons de faire les choses tous les jours. Je ne serais pas surpris si il ya une meilleure façon de le faire.
Bonne Chance!
Je ne l'ai pas utilisé ASP.NET dans un tout, et ce n'est pas testé, mais je suppose que cela (ou une variante de celle-ci) serait de travailler. Je ne me souviens pas si
List<Control>
fonctionne ou pas... Pourriez avoir à faireList<TextBox>
.