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

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

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

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

   aspx前台文件代码:

 

  1. <table>  
  2.   
  3.                    <tbody>  
  4.   
  5.                        <tr>  
  6.   
  7.                            <thclassthclass="th_CheckBox"></th>  
  8.   
  9.                            <thclassthclass="th_Floor">楼层号</th>  
  10.   
  11.                            <thclassthclass="th_Room">房间号</th>  
  12.   
  13.                            <thclassthclass="th_ComputerNumber">电脑编号</th>  
  14.   
  15.                            <thclassthclass="th_ProName">问题名称</th>  
  16.   
  17.                            <thclassthclass="th_ProType">问题类型</th>  
  18.   
  19.                            <thclassthclass="th_ProDescription">问题描述</th>  
  20.   
  21.                            <thclassthclass="th_Operate">操作</th>  
  22.   
  23.                        </tr>  
  24.   
  25.                        <asp:RepeaterIDasp:RepeaterID="UnProRepeater" runat="server">  
  26.   
  27.                            <ItemTemplate>  
  28.   
  29.                                <tr>  
  30.   
  31.                                   <td><asp:CheckBox ID="cdDelete" ToolTip='<%#Eval("id") %>' Text="" runat="server"/></td>  
  32.   
  33.                                   <td><%# Eval("floor") %></td>  
  34.   
  35.                                   <td><%# Eval("rmNumber")%></td>  
  36.   
  37.                                   <td><a href='addUnFinishedPro.aspx?id=<%# Eval("id")%>'><%# Eval("cmNumber")%></a></td>  
  38.   
  39.                                   <td><%# Eval("name") %></td>  
  40.   
  41.                                   <td><%# Eval("typeName")%></td>  
  42.   
  43.                                   <td><%# cutString(Eval("description").ToString(),15,"...")%></td>  
  44.   
  45.                                   <td><asp:LinkButton ID="lbtnDelete"CommandArgument='<%# Eval("id") %>OnClientClick="returnconfirm('真的要删除吗?')" OnClick="lbtnDelete_Click"runat="server">删除</asp:LinkButton></td>  
  46.   
  47.                                </tr>  
  48.   
  49.                           </ItemTemplate>  
  50.   
  51.                       </asp:Repeater>       
  52.   
  53.                    </tbody>  
  54.   
  55.   </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后台代码:

 

  1. protected void btnDelete_Click(object sender, EventArgs e)  
  2.   
  3.    {  
  4.   
  5.       bool result = true;  
  6.   
  7.       //遍历repeater控件的itemtemplate模版  
  8.   
  9.       foreach (RepeaterItem item in UnProRepeater.Items)  
  10.   
  11.       {  
  12.   
  13.           CheckBox cb = (CheckBox)item.FindControl("cdDelete"); //根据控件id获得控件对象,cdDelete是checkBox控件的id  
  14.   
  15.           if (cb.Checked == true)  
  16.   
  17.           {  
  18.   
  19.               //删除操作,根据id删除记录,cb.ToolTip里存放的就是记录id  
  20.   
  21.           }  
  22.   
  23.       }  
  24.   
  25.       //别忘了删除之后要重新绑定数据的哦。。。。。  
  26.   
  27.    }  


  

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值