對於CheckBoxList控制項來說,一方面要實現大量資料在伺服器端的綁定工作,另一方面往往要求實現全選、反選等功能。雖然可以在伺服器端完成這方面的工作,但這樣一個簡單的工作似乎更應該在用戶端完成。
具體方法:
在頁面中放入一個CheckBoxList控制項,並添加幾項,用來分析其產生的HTML代碼,這樣在使用js進行
動態控制時,將會非常清晰其測試代碼如下所示: 複製代碼 代碼如下:<asp:CheckBoxListID="CheckBoxList1"runat="server"CellPadding="3"CellSpacing="3"
RepeatColumns="3">
<asp:ListItem>1232</asp:ListItem>
<asp:ListItem>254</asp:ListItem>
<asp:ListItemValue="5643">5643</asp:ListItem>
<asp:ListItem>789</asp:ListItem>
<asp:ListItem>654</asp:ListItem>
<asp:ListItem>564</asp:ListItem>
<asp:ListItem>8564</asp:ListItem>
<asp:ListItem>8564</asp:ListItem>
<asp:ListItem>5452</asp:ListItem>
<asp:ListItem>5641</asp:ListItem>
</asp:CheckBoxList>
在瀏覽器中查看,並對Html進行分析:以下是DropDownList控制項產生的HTML代碼。 複製代碼 代碼如下:<tableid="CheckBoxList1"cellspacing="3"cellpadding="3"border="0">
<tr>
<td><inputid="CheckBoxList1_0"type="checkbox"name="CheckBoxList1$0"/><labelfor="CheckBoxList1_0">1232</label>
</td>
<td><inputid="CheckBoxList1_4"type="checkbox"name="CheckBoxList1$4"/><labelfor="CheckBoxList1_4">654</label>
</td>
.......
</table>
在這裡,節選了部分代碼,其中藍色部分是我們關心的。在HTML中CheckBoxList產生了
許多input(type為checkbox),並且其ID為“CheckBoxList1_i”(i為數字)。這樣我們只
需要知道一共有幾項就可以輕鬆的實現js對它的控制。
這些input都包含在一個id為CheckBoxList1的table中,因此可以通過: 複製代碼 代碼如下:document.getElementById("CheckBoxList1").getElementsByTagName("input").length
這一方法擷取CheckBoxList一共有多少項,剩下的工作其實就很簡單了,通過js更改每一個
checkbox的狀態即可。先添加三個button,用來實現全選、反選及清除控制,如下所示: 複製代碼 代碼如下:<inputtype="button"onclick="checkAll()"value="checkAll"/>
<inputtype="button"onclick="ReverseAll()"value="ReverseAll"id="Button1"/>
<inputtype="button"onclick="deleteAll()"value="deleteAll"/>
添加全選、反選及清除函數如下: 複製代碼 代碼如下:functioncheckAll(){
//alert(document.getElementById("CheckBoxList1").getElementsByTagName("input").length);
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)
{
document.getElementById("CheckBoxList1_"+i).checked=true;
}
}
functiondeleteAll(){
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)
{
document.getElementById("CheckBoxList1_"+i).checked=false;
}
}
functionReverseAll(){
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)
{
varobjCheck=document.getElementById("CheckBoxList1_"+i);
if(objCheck.checked)
objCheck.checked=false;
else
objCheck.checked=true;
}
}
OK,現在通過IE測試,綁定工作可以在後台,全選等協助工具功能可以自由發揮了!