asp.net使用Repeater控件中的全选进行批量操作实例
本文实例讲述了asp.net使用repeater控件中的全选进行批量操作的方法。分享给大家供大家参考。具体分析如下:
今天在repeater控件中碰到一个全选的操作,于是上网查了一下,找到一个觉得比较好,便记录下来,
界面代码简化之后(全选操作):
<script type="text/javascript">
function selectall(parentchk, childid, bigcontrolid) {
var oelements = document.getelementsbytagname("input");
var bischecked = parentchk.checked;
for (i = 0; i < oelements.length; i++) {
if (ischeckbox(oelements[i]) && ismatch(oelements[i].id, childid, bigcontrolid)) {
oelements[i].checked = bischecked;
}
}
}
function ismatch(id, childid, controlid) {
var spattern = '^' + controlid + '_+.*' + childid + '$';
var oregexp = new regexp(spattern);
if (oregexp.exec(id))
return true;
else
return false;
}
function ischeckbox(chk) {
if (chk.type == 'checkbox') return true;
else return false;
}
</script>
<asp:repeater id="repeater_xx" runat="server">
<headertemplate>
<table>
<tr>
<th>选项</th>
<th>数据</th>
</tr>
</headertemplate>
<itemtemplate>
<tr>
<td>
<asp:checkbox id="checkbox_id" runat="server" checked="false" />
</td>
<td>
<asp:label runat="server" id="label_id" text='<%#eval("label_id")%>'></asp:label>
</td>
<tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:checkbox runat="server" id="checkboxcz" text="全选/反选" onclick='selectall(this,"checkbox_id","repeater_xx")'/>
<input class="anniu" id="input_gs" type="submit" runat="server" onserverclick="gssubmit_click" value="操作" />
后台根据选中项获取当前行的数据然后进行操作
public void gssubmit_click(object sender, eventargs e)
{
for (int i = 0; i < repeater_xx.items.count; i++)
{
//获取复选框
checkbox cb = (checkbox)rpt_paper.items[i].findcontrol("checkboxcz");
//判断是否被选中
if(cb != null && cb.checked == true)
{
label id = (label)rpt_paper.items[i].findcontrol("lable_id");
//获取该行id
int id= convert.toint32(id.text);
//相应操作
......
}
}
}
希望本文所述对大家的asp.net程序设计有所帮助。