이 예에서는 주로 다음을 해결합니다.
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)
스물 둘 {
23 if (!sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
스물넷 {
25 //관련 처리 수행
26 Response.Write("이것은 선택 작업입니다. 작업된 CheckBox의 Text 값은 " + CheckBoxList1.Items[i].Text + "값 값은 " + CheckBoxList1.Items[i].Value)입니다.
27 i = CheckBoxList1.Items.Count;
28 }
29 }
그 외 30개
31 {
32 //두 번째 경우
33 //원래 선택되어 있었지만 현재는 선택되어 있지 않습니다.
34 //이번 클릭 동작은 다음과 같습니다. 체크를 해제하고 이 항목을 클릭하세요.
35 if (sOld.Contains(CheckBoxList1.Items[i].Value.Trim() + ","))
36 {
37 //관련 처리 수행
38 Response.Write("이것은 선택 취소 작업입니다. 작업된 CheckBox의 텍스트 값은 " + CheckBoxList1.Items[i].Text + "값 값은 " + 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