Cet exemple résout principalement
Les contrôles de liste tels que CheckBoxList ne peuvent pas obtenir directement l’élément de l’opération en cours lorsque l’événement SelectedIndexChanged est déclenché.
Et quel type d'opération est sélectionné ? Ou décocher ?
----------
L'exemple de code est le suivant :
1protected void Page_Load (expéditeur de l'objet, EventArgs e)
2 {
3 si (!IsPostBack)
4 {
5 //Opération Lier CheckBoxList
6 this.hidtxt_CheckBoxSelectValue.Value = "";//La première fois que CheckBoxList est liée
7}
8}
9
10 void protégé CheckBoxList1_SelectedIndexChanged (expéditeur d'objet, EventArgs e)
11 {
12 //hidtxt_CheckBoxSelectValue stocke la valeur du dernier clic
13 //Si c'était Page_Load la dernière fois, alors hidtxt_CheckBoxSelectValue est vide
14 chaînes sOld = this.hidtxt_CheckBoxSelectValue.Value.Trim();
15
16 pour (int i = 0; i < CheckBoxList1.Items.Count; i++)
17 {
18 //La première situation
19 //Il n'a pas été sélectionné initialement mais est actuellement sélectionné.
20 //Ensuite, cette opération de clic est : sélectionnez et cliquez sur cet élément
21 si (CheckBoxList1.Items[i].Selected)
vingt-deux {
23 si (!sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
vingt-quatre {
25 //Effectuer les traitements pertinents
26 Response.Write("Il s'agit d'une opération de sélection, la valeur du texte du CheckBox utilisé est " + CheckBoxList1.Items[i].Text + "La valeur de la valeur est " + CheckBoxList1.Items[i].Value);
27 je = CheckBoxList1.Items.Count;
28 }
29 }
30 autres
31 {
32 //Deuxième cas
33 //Il a été initialement sélectionné mais n'est pas actuellement sélectionné.
34 //L'opération de clic cette fois est : décochez et cliquez sur cet élément
35 si (sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
36 {
37 //Effectuer les traitements associés
38 Response.Write("Il s'agit d'une opération de désélection, la valeur du texte du CheckBox utilisé est " + CheckBoxList1.Items[i].Text + "La valeur de la valeur est " + CheckBoxList1.Items[i].Value);
39 je = CheckBoxList1.Items.Count;
40}
41 }
42 }
43
44 //Enregistrer toutes les valeurs sélectionnées cette fois
45 chaîne sNouveau = "" ;
46 foreach (élément ListItem dans CheckBoxList1.Items)
47 {
48 si (article sélectionné)
49 sNew += " " + item.Value.Trim() + ",";
50 }
51 this.hidtxt_CheckBoxSelectValue.Value = sNew;//Préparer la prochaine comparaison
52 }
http://www.cnblogs.com/freeliver54/archive/2007/01/11/617988.html