ASP.NET给DataGrid,Repeater等添加全选批量删除等功能
很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能。
实现全选的还是js的一个小函数:
[code]
function CheckAll(e,itemname){
var aa=document.getElementsByName(itemname);
if(aa==undefined) return;
for (var i=0; i<aa.length; i++)aa[i].checked = e.checked;
}
[/code]
[b] 先看在asp:Repeater中的实现过程。[/b]
在HeaderTemplate中直接添加全选的一个CheckBox:
[code]<input name="chkall" value="1" type="checkbox" onclick="CheckAll(this,'Item')"/>[/code]
在ItemTemplate中绑定的时候只需要给Input设置目前行的ID编号等即可: [code]<td align="center" ><input name="Item" type="checkbox" value='<%# Eval("deal_id")%>'/></td>
[/code]
然后我们创建一个“全部删除”的LinkButton,当点击的时候执行一个后台代码: [code]<asp:LinkButton id="LB_Bak_Delete" text="批量删除" OnCommand="LinkButton_Command" runat="server" CommandName="delete" visible="false"/>[/code]
所执行的函数名称是LinkButton_Command,给其设置参数CommandName的主要目的就是标记这个操作是删除功能(很多时候还需要生成啊,高亮啊等操作),看看LinkButton_Command的执行:
[code]
protected void LinkButton_Command(Object sender, CommandEventArgs e){
string ids=Request.Form["Item"];
switch(e.CommandName){
case "delete":
BakDelete(ids);
break;
}
Data_List_Load();//重新加载
return ;
}
private void BakDelete(string ids){
//ODeal是个类
if(!String.IsNullOrEmpty(ids) && ODeal.Delete("[deal_id] in ("+ids+")")){
OutMess("批量删除数据成功");
}else{
OutMess("批量删除失败");
}
}
[/code]
[b]
然后我们看看在 DataGrid 或者 DataView中的方法:[/b]
使用的js还是一样的,在前台显示的时候:
[code] <asp:TemplateColumn HeaderText="<input name='chkall' value='1' type='checkbox' onclick='CheckAll(this,JS_Item_Text)'/>" ItemStyle-Width="30px" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" HeaderStyle-CssClass="head">
<ItemTemplate><input name="Item" type="checkbox" value='<%# Eval("td_id")%>'/></ItemTemplate>
</asp:TemplateColumn>
[/code]
这里需要注意的是CheckAll执行的方法中有个单引号,这里是不能加进去的,就先声明一个js的变量,然后在加载列表的时候写个js客户端注册:
列表ClassGridDataBind的时候,加入:
[code]
string sScript = "var JS_Item_Text='Item';";
ClientScriptManager Objcsm = Page.ClientScript;
if (!Objcsm.IsStartupScriptRegistered("_JS_Item_Text")){
Objcsm.RegisterStartupScript(this.GetType(), "_JS_Item_Text", sScript, true);
}
[/code]
然后其他的和Repeater的都是一样的。
ASP.NET给DataGrid,Repeater等添加全选批量删除等功能的更多相关文章
- checkbox复选框全选批量删除
多选框全选实现批量删除 html代码 <body> <form action="" method="post" name="Form ...
- flexigrid扩展(添加全选,格式化表单)
1.关于flexigrid的属性这里不多说,百度一大把. 这里主要说一个参数process process参数:编写对某一列进行自定义处理的函数 function 方法名(tddiv,pid){}// ...
- JS中表格的全选和删除要注意的问题
在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. ...
- Vue实现商城里面多个商品计算,全选,删除
<!--包含 全选/不全选 批量删除 全部金额计算 数量加减--> 简陋的CSS代码 .main{ width: 100%;}.title{ width: 100%; height: 40 ...
- winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。
在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn 在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报 ...
- GridControl 添加全选列
这里通过List对象绑定GridControl,且不用在GirdControl界面中添加任何列,实现CheckBox列的方法 1.列表中出现CheckBox列 非常简单,在绑定的List实体中,增加一 ...
- IOS开发学习笔记029-反选、全选、删除按钮的实现
还是在上一个程序的基础上进行修改 1.反选按钮 2.全选按钮 3.删除按钮 4.其他代码优化 1.反选按钮 反选的过程就是将_deleteShops数组中得数据清空,然后将Shops中数组添加到_de ...
- Vue-表单验证-全选-反选-删除-批量删除
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- php对表格进行批量操作如全选反选删除功能
<!DOCTYPE> <html> <head> <meta http-equiv="content-type" content=&quo ...
随机推荐
- Petuum - Careers
Petuum - Careers Cloudformation
- JVM调优总结 -Xms -Xmx -Xmn -Xss等
首先介绍一下新生代.老年代.所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区.加上老年代就这三个区.数据会首先分配到Eden区 ...
- RFID Reader ICs
http://www.advanide.com/readeric.htm Low Frequency Reader ICs Manufacturer Product Frequency ISO Com ...
- Entity Framework 6 vs NHibernate 4
This article is dedicated to discussing the latest releases of the NHibernate and Entity Framework. ...
- js 实现纯前端将数据导出excel
通过将json遍历进行字符串拼接,将字符串输出到csv文件,输出的文件不会再是html类型的文件而是真正的csv文件,代码如下 <html> <head> <p styl ...
- UVa 1329 - Corporative Network Union Find题解
UVa的题目好多,本题是数据结构的运用,就是Union Find并查集的运用.主要使用路径压缩.甚至不须要合并树了,由于没有反复的连线和改动单亲节点的操作. 郁闷的就是不太熟悉这个Oj系统,竟然使用库 ...
- Java垃圾回收精粹 — Part1
Java垃圾回收精粹分4个部分,本篇是第1部分.在第1部分里介绍了权衡点.对象生命周期以及全局暂停事件. 串行.并行.并发.CMS.G1.年轻代(Young Gen).新生代(New Gen).旧生代 ...
- OpenShift DNS的机制
为什么不直接用kube-dns? 为什么不直接用kube-dns? 为什么不直接用kube-dns? 感谢各位前辈的专研,在下午有限的时间里把Openshift DNS的机制理了一下.更详细的材料大家 ...
- Hibernate 实体关联关系映射(转载)
原文链接地址:http://lavasoft.blog.51cto.com/62575/39398/ Hibernate:Hibernate关联关系映射实例速查 Hibernate关联关系映射目录 ...
- [Todo] Redis里面队列的两种模式,以及抢红包在Redis中的实现
两种队列模式: 一种是利用list的lpush/rpop等 另一种是redis自带的发布者/订阅者模式 http://www.cnblogs.com/alazalazalaz/p/5512258.ht ...