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
Version imprimable
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.
Et si tu mettais ton UC dans un UpdatePanel ?
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:
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:
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 :yaisse2:
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 :mouarf:
Dès lors, dans le Page_Load on ne fait pas unmaisCode:maVariable = monTextBox.Text;
=> pour reprendre l'exemple, on aura dans l'événement du bouton(ou tout autre déclencheur)Code:monTextBox.Text = maVariable;
Et dans le Page_LoadCode:_name = txt.Text;
Code: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:
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 loadCode:
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?Citation:
=> il faut récupérer les valeurs lors de l'exécution d'un événement tel un clic sur un bouton :mouarf:
Dès lors, dans le Page_Load on ne fait pas unmaisCode:maVariable = monTextBox.Text;
=> pour reprendre l'exemple, on aura dans l'événement du bouton(ou tout autre déclencheur)Code:monTextBox.Text = maVariable;
Et dans le Page_LoadCode:_name = txt.Text;
Code:txt.Text = _name;