Repeater控件中實(shí)現(xiàn)checkbox的全選
Repeater 控件是模板化的數(shù)據(jù)綁定列表,Repeater 控件是“無(wú)外觀的”,即:它不具有任何內(nèi)置布局或樣式,也就不會(huì)產(chǎn)生任何數(shù)據(jù)控制表格來(lái)控制數(shù)據(jù)的顯示。因此,我們必須在控件的模板中明確聲明所有 HTML 布局標(biāo)記、格式標(biāo)記和樣式標(biāo)記。下面主要介紹了一個(gè)例子,功能是在Repeater控件中實(shí)現(xiàn)checkbox的全選。
今天做項(xiàng)目,做到一個(gè)Repeater控件內(nèi)部的復(fù)選框權(quán)限效果,感覺(jué)有點(diǎn)麻煩,現(xiàn)在整理一下,貢獻(xiàn)給大家!
一、HTML代碼:
- <input name="CheckAll" type="checkbox" value="" onclick="javascript:FormSelectAll('form1','CheckBox',this);" />
- //用于選擇是否全選的復(fù)選框,用javascript函數(shù)“FormSelectAll('form1','CheckBox',this); ”實(shí)現(xiàn)全選效果,具體參數(shù)下文在詳細(xì)解釋
- <form id="form1" runat="server">
- <asp:Repeater ID="RptList" runat="server" >
- <ItemTemplate>
- <input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%# DataBinder.eval_r(Container.DataItem, "F_JobID")%>' />
- //使用Repeater 控件綁定checkbox控件,用于選擇單項(xiàng)內(nèi)容
- </ItemTemplate>
- </asp:Repeater>
- </form>
二、Javascript實(shí)現(xiàn)全選效果:
- function FormSelectAll(formID,EleName,e) //formID:目標(biāo)復(fù)選框組所在的form表單的ID屬性;Elename:目標(biāo)復(fù)選框組共同的Name屬性;e:用于標(biāo)識(shí)是否全選的復(fù)選框自身,用戶判斷是“全選”還是“全不選”
- {
- var Elements = document.getElementByIdx(formID).elements; //獲取目標(biāo)復(fù)選框組所在的Form表單
- for (var i = 0; i < Elements.length;i++)
- {
- if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0) //根據(jù)對(duì)象類型和對(duì)象的name屬性判斷是否為目標(biāo)復(fù)選框
- {
- Elements[i].checked = e.checked; //根據(jù)用于控制的復(fù)選框的選中情況判斷是否選中目標(biāo)復(fù)選框
- }
- }
- }
三、服務(wù)器端執(zhí)行代碼:
- for (int i = 0; i < this.RptList.Items.Count; i++)
- //根據(jù)Repeater 控件的情況執(zhí)行循環(huán)判斷目標(biāo)復(fù)選框是否被選中
- {
- HtmlInputCheckBox CB = (HtmlInputCheckBox)this.RptList.Items[i].FindControl("CheckBox");
- //獲取一個(gè)目標(biāo)復(fù)選框情況
- if (CB.Checked == true) //判斷該復(fù)選框是否被選中
- {
- 。。。。。 //程序處理代碼
- }
- }
希望對(duì)你有幫助。
【編輯推薦】