• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET巧妙利用repeater控件和checkBox控件实现批量操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

   一般的CMS(Content Manager System)中,不可避免的会涉及批量操作。比如显示一页数据,一个良好的设计都会加上批量删除、批量推荐等操作。

   在ASP.NET中,做这样的批量操作非常简单,以批量删除为例,我们仅需要checkBox控件用来多选,外加一个批量删除按钮。显示数据这里采用repeater控件。

   下面是我的工程中一段代码:

   aspx前台文件代码:

 

<table>

                   <tbody>

                       <tr>

                           <thclass="th_CheckBox"></th>

                           <thclass="th_Floor">楼层号</th>

                           <thclass="th_Room">房间号</th>

                           <thclass="th_ComputerNumber">电脑编号</th>

                           <thclass="th_ProName">问题名称</th>

                           <thclass="th_ProType">问题类型</th>

                           <thclass="th_ProDescription">问题描述</th>

                           <thclass="th_Operate">操作</th>

                       </tr>

                       <asp:RepeaterID="UnProRepeater" runat="server">

                           <ItemTemplate>

                               <tr>

                                  <td><asp:CheckBox ID="cdDelete" ToolTip='<%#Eval("id") %>' Text="" runat="server"/></td>

                                  <td><%# Eval("floor") %></td>

                                  <td><%# Eval("rmNumber")%></td>

                                  <td><a href='addUnFinishedPro.aspx?id=<%# Eval("id")%>'><%# Eval("cmNumber")%></a></td>

                                  <td><%# Eval("name") %></td>

                                  <td><%# Eval("typeName")%></td>

                                  <td><%# cutString(Eval("description").ToString(),15,"...")%></td>

                                  <td><asp:LinkButton ID="lbtnDelete"CommandArgument='<%# Eval("id") %>' OnClientClick="returnconfirm('真的要删除吗?')" OnClick="lbtnDelete_Click"runat="server">删除</asp:LinkButton></td>

                               </tr>

                          </ItemTemplate>

                      </asp:Repeater>     

                   </tbody>

  </table>



  

   大家不要被这么代码吓到了,真正有用的只有第一个<tr></tr>块里的<th class="th_CheckBox"></th>,目的是给单选框留出一列;第二个<tr></tr>块里的<td><asp:CheckBox ID="cdDelete" ToolTip='<%#Eval("id") %>' Text="" runat="server"/></td>,真正的显示checkBox控件。其中ToolTip属性是为了携带记录id,有了记录id我们才能操作这条记录。为啥用这个属性呢?因为只有这个属性最合适,让人比较意外的是ASP.NET的checkBox竟然没有value属性,找来找去,只有ToolTip这个属性能用来携带id了,而且用户把鼠标放到checkBox上还会显示出记录id,增加了程序的神秘感。把repeater控件绑定数据之后,每条数据前都会多出一个单选框,这样就达到目的了。作为例子,上边这段代码没必要写这么多,但是为了给读者一个完整的展示,还是把代码写全了。

   在界面上再添加一个批量删除按钮,前台就搞定了,怎么在批量删除按钮事件中删除选中的项呢?

   aspx.cs后台代码:

 

protected void btnDelete_Click(object sender, EventArgs e)

   {

      bool result = true;

      //遍历repeater控件的itemtemplate模版

      foreach (RepeaterItem item in UnProRepeater.Items)

      {

          CheckBox cb = (CheckBox)item.FindControl("cdDelete"); //根据控件id获得控件对象,cdDelete是checkBox控件的id

          if (cb.Checked == true)

          {

              //删除操作,根据id删除记录,cb.ToolTip里存放的就是记录id

          }

      }

      //别忘了删除之后要重新绑定数据的哦。。。。。

   }



  

   代码中已经加上详细的注释,相信您一看即懂。

   通过这个简单的小例子,展示了ASP.NET通过repeater控件和checkBox控件进行批量操作,希望对大家的学习有所帮助!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Asp.net中多彩下拉框的实现发布时间:2022-07-10
下一篇:
通过源码了解ASP.NETMVC几种Filter的执行过程发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap