Este exemplo resolve principalmente
Controles de lista como CheckBoxList não podem obter diretamente o Item da operação atual quando o evento SelectedIndexChanged é gerado.
E qual tipo de operação está selecionado? Ou desmarcar?
----------
O código de exemplo é o seguinte:
1protected void Page_Load(remetente do objeto, EventArgs e)
2 {
3 se (!IsPostBack)
4 {
5 //Operação de vinculação CheckBoxList
6 this.hidtxt_CheckBoxSelectValue.Value = "";//A primeira vez que CheckBoxList é vinculado
7}
8}
9
10 nulos protegidos CheckBoxList1_SelectedIndexChanged(objeto remetente, EventArgs e)
11 {
12 //hidtxt_CheckBoxSelectValue armazena o valor do último clique
13 //Se foi Page_Load da última vez, então hidtxt_CheckBoxSelectValue está vazio
14 string sOld = this.hidtxt_CheckBoxSelectValue.Value.Trim();
15
16 para (int i = 0; i
18 //A primeira situação
19 //Não foi selecionado originalmente, mas está selecionado atualmente.
20 //Então esta operação de clique é: selecione e clique neste Item
21 se (CheckBoxList1.Items[i].Selecionado)
vinte e dois {
23 if (!sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
vinte e quatro {
25 //Executar processamento relevante
26 Response.Write("Esta é uma operação de seleção, o valor do Texto do CheckBox operado é " + CheckBoxList1.Items[i].Text + "O valor do valor é " + CheckBoxList1.Items[i].Value);
27 i = CheckBoxList1.Items.Count;
28}
29}
30 mais
31 {
32 //Segundo caso
33 //Foi selecionado originalmente, mas não está selecionado no momento.
34 //A operação de clique desta vez é: desmarque e clique neste item
35 if (sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
36 {
37 //Executar processamento relacionado
38 Response.Write("Esta é uma operação de desmarcação, o valor do texto do CheckBox operado é " + CheckBoxList1.Items[i].Text + "O valor do valor é " + CheckBoxList1.Items[i].Value);
39 i = CheckBoxList1.Items.Count;
40}
41}
42}
43
44 //Salva todos os valores selecionados desta vez
45 stringsNew = "";
46 foreach (item ListItem em CheckBoxList1.Items)
47 {
48 se (item.Selecionado)
49 sNew += " " + item.Value.Trim() + ",";
50}
51 this.hidtxt_CheckBoxSelectValue.Value = sNew;//Prepare-se para a próxima comparação
52}
http://www.cnblogs.com/freeliver54/archive/2007/01/11/617988.html