Bonjour,
Je débute depuis quelques jours en asp .net et j'ai une question concernant le repeater.
Dans ce repeater j'ai un web control quelconque qui contiens un checkbox.
Dans ma page principal, j'ai une dropdownlist qui lorsque l'index change, ajoute dans une liste de web control, un nouveau web control et ensuite bind cette liste au repeater (classique jusque la je pense).
Mon problème cependant est le suivant :
Ma checkbox prends comme Text la valeur qui a été selectionnée dans la liste, exemple si dans ma liste je choisi "nom", ma checkbox aura comme text "nom". Le problème est que lorsque je change la valeur de la liste déroulante, ca rajoute bien un web user control mais, toutes les checkbox ont le texte qui change.
Exemple:
Checkbox 1 : Nom
Je choisi Prénom dans ma liste :
Checkbox 1 : Prénom
CheckBox2 : Prénom
Mon problème je le comprends, (à cause du AutoPostBack de ma liste) mais je n'arrive pas à le résoudre.
Voila mon code dans ma page principal :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 private static List<controles.Filtre> liste; protected void Page_Load(object sender, EventArgs e) { if (ddlFiltre.Items.Count == 0) { this.ddlFiltre.Items.Add("Nom"); this.ddlFiltre.Items.Add("Prenom"); this.ddlFiltre.Items.Add("Unit"); } if (liste == null) { liste = new List<controles.Filtre>(); } this.ddlFiltre.SelectedIndexChanged += new EventHandler(ddlFiltre_SelectedIndexChanged); } void ddlFiltre_SelectedIndexChanged(object sender, EventArgs e) { controles.Filtre temp = new controles.Filtre(); liste.Add(temp); this.rptFIltre.DataSource = liste; this.rptFIltre.DataBind(); }
Dans le web user control :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 protected void Page_Load(object sender, EventArgs e) { ddlCompare.Items.Clear(); ddlCompare.Items.Add("égal"); ddlCompare.Items.Add("différent"); string var = (this.Parent.Parent.Parent.FindControl("ddlFiltre") as DropDownList).SelectedValue; ChangeCB(var); } public void ChangeCB(string param) { this.cbFiltre.Text = param; this.cbFiltre.Checked = true; }
(Comme c'est une appli test pas besoin de tenir compte de la qualité de mon codeC'est juste pour comprendre).
Merci d'avance.
Partager