この例では主に次のことを解決します
CheckBoxList などのリスト コントロールは、SelectedIndexChanged イベントが発生したときに現在の操作項目を直接取得できません。
また、どの操作タイプが選択されますか? それともチェックを外しますか?
----------
サンプルコードは次のとおりです。
1protected void Page_Load(オブジェクト送信者、EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 //CheckBoxList のバインド操作
6 this.hidtxt_CheckBoxSelectValue.Value = "";//CheckBoxList が初めてバインドされるとき
7}
8}
9
10 protected void CheckBoxList1_SelectedIndexChanged(オブジェクト送信者、EventArgs e)
11 {
12 //hidtxt_CheckBoxSelectValue はラスト クリックの値を保存します
13 //前回が Page_Load だった場合、hidtxt_CheckBoxSelectValue は空です
14 文字列 sOld = this.hidtxt_CheckBoxSelectValue.Value.Trim();
15
16 for (int i = 0; i < CheckBoxList1.Items.Count; i++)
17 {
18 //最初の状況
19 //元々は選択されていませんでしたが、現在は選択されています。
20 //このクリック操作は次のようになります: この項目を選択してクリックします
21 if (CheckBoxList1.Items[i].Selected)
22 {
23 if (!sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
24 {
25 //関連する処理を実行します
26 Response.Write("これは選択操作です。操作される CheckBox の Text 値は " + CheckBoxList1.Items[i].Text + "Value 値は " + CheckBoxList1.Items[i].Value);
27 i = CheckBoxList1.Items.Count;
28 }
29 }
他30
31 {
32 //2 番目のケース
33 //最初は選択されていましたが、現在は選択されていません。
34 //今回のクリック操作は次のとおりです: チェックを外してこの項目をクリックします
35 if (sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
36 {
37 //関連する処理を実行する
38 Response.Write("これは選択解除操作です。操作された CheckBox の Text 値は " + CheckBoxList1.Items[i].Text + "Value 値は " + CheckBoxList1.Items[i].Value);
39 i = CheckBoxList1.Items.Count;
40}
41 }
42 }
43
44 //今回は選択した値をすべて保存します
45 文字列 sNew = "";
46 foreach (CheckBoxList1.Items の ListItem 項目)
47 {
48 if (項目.選択済み)
49 sNew += " " + item.Value.Trim() + ",";
50 }
51 this.hidtxt_CheckBoxSelectValue.Value = sNew;//次の比較の準備をする
52 }
http://www.cnblogs.com/freeliver54/archive/2007/01/11/617988.html