Bonjour,
J'ai un user control dans ma page dont lequel je dois recuperer une saisie.
Quand je valide par un bouton dans ma page, je ne recupere rien car le load du usercontrol se fait apres le load de la page.
Comment dois je faire ?
Merci
Bonjour,
J'ai un user control dans ma page dont lequel je dois recuperer une saisie.
Quand je valide par un bouton dans ma page, je ne recupere rien car le load du usercontrol se fait apres le load de la page.
Comment dois je faire ?
Merci
ma textbox est dans l'uc.
le bouton de validation dans la page.
Qd je clique dessus je voudrais recuperer dans la page la valeur du textbox de l'uc.
Mais comme je load avant ma page et apres mon uc, je n'arrive pas a recuperer la valeur du textbox.
Salut
voici une suggestion qui peut t'aider :
Dans le UC, tu définis des propriétés :
Et dans ton code behind de ta page, tu appelles cette propriété publique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private string _name; public string Name { get { return _name; } set { _name = value; } } protected void Page_Load(object sender, EventArgs e) { this.Name = txt.Text; }
Je pense que ca devrait fonctionner, a toi d'adapter un peu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 UC uc = (UC)e.Item.FindControl("UC1"); string name = uc.Name;
Bon courage
Salut,
Je pense que s'il y a un rechargement de la page (au vu de mon expérience avec les UC) il faut déclarer les propriétés private en static sinon, au rechargement de l'UC par la page, il va perdre ses données et recevra donc une chaine vide : ce qui ne résoudra pas son problème
Il ne faut pas mettre la récupération dans le Page_Load de la page car les TextBox seront réinialisés à chaque chargement de la page.
=> il faut récupérer les valeurs lors de l'exécution d'un événement tel un clic sur un bouton
Dès lors, dans le Page_Load on ne fait pas unmais
Code : Sélectionner tout - Visualiser dans une fenêtre à part maVariable = monTextBox.Text;=> pour reprendre l'exemple, on aura dans l'événement du bouton(ou tout autre déclencheur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part monTextBox.Text = maVariable;Et dans le Page_Load
Code : Sélectionner tout - Visualiser dans une fenêtre à part _name = txt.Text;
Code : Sélectionner tout - Visualiser dans une fenêtre à part txt.Text = _name;
Si ton control, contient une textbox TextBox1 :
et dans ta page si ctl1 est ton user control tu peux récupérer sa valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public partial class MonControle : System.Web.UI.UserControl { public string InputText { get { return this.TextBox1.Text; } set { this.TextBox1.Text = value; } } }
Il n'a pas de problème les données sont chargées bien avant le load
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 protected void Page_Load(object sender, EventArgs e) { if (String.IsNullOrEmpty(ctl1.InputText)) this.Label1.Text = ctl1.InputText; }
Bien sur qu'il ne faut pas laisser tel quel dans le pageLoad sinon les valeurs seront rechargées. j'ai donné seulement une piste à creuser et à adapter.
Le bouton est dans la page principale et non dans le UC, comment tu récupères l'évènement depuis le UC?=> il faut récupérer les valeurs lors de l'exécution d'un événement tel un clic sur un bouton
Dès lors, dans le Page_Load on ne fait pas unmais
Code : Sélectionner tout - Visualiser dans une fenêtre à part maVariable = monTextBox.Text;=> pour reprendre l'exemple, on aura dans l'événement du bouton(ou tout autre déclencheur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part monTextBox.Text = maVariable;Et dans le Page_Load
Code : Sélectionner tout - Visualiser dans une fenêtre à part _name = txt.Text;
Code : Sélectionner tout - Visualiser dans une fenêtre à part txt.Text = _name;
Partager