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);
                  //相应操作
                    ......
                 }
          }
  }
        
时间: 2024-11-06 16:37:01

asp.net关于Repeater控件中的全选,批量操作的相关文章

asp.net 在repeater控件中加按钮

在repeater中加入方法有两种方法: 第一种:是对repeater控件的行添加OnItemCommand事件,添加方法也是有两种 1.在设计页面中,选中repeater控件右击==>属性==>属性栏中的事件标签(闪电符号)==>双击ItemCommand 2.在写代码,也是可以实现. <asp:Repeater ID="rptDataList" runat="server" onitemcommand="rptDataList_

ASP.net:GridView控件中实现全选和全反选

E:\ASP.net\temp\WebSite1 CheckBox2控件的 AutoPostBack属性设置为true. protected void CheckBox2_CheckedChanged(object sender, EventArgs e) {   for(int i=0;i<=GridView1.Rows.Count-1;i++)    {       CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("Chec

asp.net GridView控件中诗选全选和全不选功能

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Configuration; 10 11 public part

在ASP.NET 的服务器端控件中有三种关于 ID 的属性

在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性.方法和时间进行编程访问.(可写) ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素".一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的

Repeater控件中触发按钮事件出现System.ArgumentException: 回发或回调参数无效。在配置中使用 &lt; pages enableEventValidation=&quot;true&quot;/&gt;

今天,在Repeater控件中添加了一个按钮,可是在执行时确提示 System.ArgumentException: 回发或回调参数无效.在配置中使用 < pages enableEventValidation="true"/> <asp:Repeater ID="rpList" runat="server" OnItemCommand="rpList_ItemCommand"> <ItemTem

asp.net学习——Repeater控件

1 <style type="text/css"> 2 html { 3 background-color:Silver 4 } 5 .content { 6 width:600px; 7 border:soild 1px black; 8 background-color:White; 9 } 10 .movies { 11 border-collapse:collapse; 12 } 13 .movies th,.movies td { 14 padding:10px;

asp.net在用户控件中使用ClientScript

在用户空间中调用ClientScript.RegisterClientScriptBlock方法 ClientScript的命名空间是System.Web.UI.Page,并且要实例化之后的Page才能条用ClientScript. 用户自定义空间不是继承自Page,因此不能直接使用ClientScript这个类.如果要使用这个类,需要通过找到调用页面对象的方式.具体做法: this.Parent.Page 找到这个对象之后,就可以像在普通页面中一样,自由调用System.Web.UI.Page

ASP.NET- 查找Repeater控件中嵌套的控件

如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用FindControl进行寻找. 如下所示:在Repeater的Item Command事件下下遍历: for(int i=0;i<repeater1.Items.Count;i++) { CheckBox cb=(CheckBox )repeater1.Items[i].FindControl("C

获取不到Repeater控件中的CheckBox选中状态

写在前面的话:在做一个项目的时候,需要使用到Repeater控件,并且在Repeater控件内放置了CheckBox控件来标志需要删除的行,选中后,在后台取到的CheckBox的值总是为false.最后发现是在PageLoad函数中没有判断是否是回发就绑定了Repeater控件的数据,那么每次进入页面CheckBox控件的值当然被刷新为false了. 前台页面: 1 <div class="contianer p10"> 2 <h3> 3 当前位置:<a