-
[C#]control dynamique
J'avais déjà posé la question mais le tread à été supprimer :cry: ,
Je place par exemple un control TextBox en dynamique, si je veus récupérer la valeur entrée dans le textbox, il me dit ce textbox n'existe pas. Je sais qu'il faut placer un id sur le textbox, qu'il faut recréé un autre textbox en fesant un find sur la page de l'id du 1er textbox, mais plus moyen de me souvenir de la commande.
Merci pour votre aide.
-
je ne comprends pas trop où est ton problème : même pour un textBox placé en dynamique, tu peux récupérer sa valeur en faisant :
leNomDeTonTextBox.Text
je n'ai pas dû comprendre ta question.... peux tu y joindre un bout de code?
-
voilà l'erreur :
Message d'erreur du compilateur: CS0246: Le type ou le nom d'espace de noms 'MonText' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
Voilà un bout de code:
TextBox MonText= new TextBox();
MonText.Id = "MonText";
PlaceHolder1.Controls.Add(MonText);
et dans une autre fonction là ou je récupère la valeur lors d'un clic bouton:
MaVar = MonText.Text;
MonText n'existe pas, il faut que je fasse un find du control sur la page grâce à l'id, je sais qu'on peu le faire mais plus moyen de me souvenir comment.
-
je pense que ton problème vient du fait que tu déclares ton textBox dans une méthode et donc qu'il n'est visible qu'à l'intérieur de cette méthode :
essaye de déclarer ton textBox en variable globale :
private TextBox monText;
pour ce qui est de l'instantiation, laisse-la dans la méthode où tu l'avais mise :
MonText= new TextBox();
PlaceHolder1.Controls.Add(MonText);
à partir de là, l'expression : MaVar = MonText.Text dans une autre méthode ne devrait plus poser de problème.
Pour la méthode "find", désolé, je ne peux pas t'aider, je connais pas...
-
j'ai finalement retrouvé :D
Voilà le code pour ceux que cela interesse
TextBox MonText = new TextBox();
MonText.ID = "MonText";
PlaceHolderAdminNews.Controls.Add(MonText);
et dans l'autre fonction :
TextBox MonText2 = (TextBox)FindControl("MonText");
Permet de retrouver un controle placer sur la page
Merci encore macfred :wink:
-
J'ai une erreur dans mon code pour récupérer le champs texte de mes textbox dynamique :
j'ai ce code-ci :
TextBox mensu = new TextBox();
mensu.ID = "mensu" + i;
PlaceHolder1.Controls.Add(mensu);
pour créer les textbox dynamiquement
et ceci pour récupérer ma variable
TextBox tb = (TextBox)PlaceHolder1.FindControl("mensu" + i);
Response.Write(tb.Text);
j'obtiens l'erreur classique :
"La référence d'objet n'est pas définie à une instance d'un objet."