欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net使用Repeater控件中的全选进行批量操作实例

程序员文章站 2024-02-15 20:25:46
本文实例讲述了asp.net使用repeater控件中的全选进行批量操作的方法。分享给大家供大家参考。具体分析如下: 今天在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程序设计有所帮助。