很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在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等添加全选批量删除等功能的更多相关文章

  1. checkbox复选框全选批量删除

    多选框全选实现批量删除 html代码 <body> <form action="" method="post" name="Form ...

  2. flexigrid扩展(添加全选,格式化表单)

    1.关于flexigrid的属性这里不多说,百度一大把. 这里主要说一个参数process process参数:编写对某一列进行自定义处理的函数 function 方法名(tddiv,pid){}// ...

  3. JS中表格的全选和删除要注意的问题

    在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. ...

  4. Vue实现商城里面多个商品计算,全选,删除

    <!--包含 全选/不全选 批量删除 全部金额计算 数量加减--> 简陋的CSS代码 .main{ width: 100%;}.title{ width: 100%; height: 40 ...

  5. winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。

    在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn 在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报 ...

  6. GridControl 添加全选列

    这里通过List对象绑定GridControl,且不用在GirdControl界面中添加任何列,实现CheckBox列的方法 1.列表中出现CheckBox列 非常简单,在绑定的List实体中,增加一 ...

  7. IOS开发学习笔记029-反选、全选、删除按钮的实现

    还是在上一个程序的基础上进行修改 1.反选按钮 2.全选按钮 3.删除按钮 4.其他代码优化 1.反选按钮 反选的过程就是将_deleteShops数组中得数据清空,然后将Shops中数组添加到_de ...

  8. Vue-表单验证-全选-反选-删除-批量删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. php对表格进行批量操作如全选反选删除功能

    <!DOCTYPE> <html> <head> <meta http-equiv="content-type" content=&quo ...

随机推荐

  1. extjs用iframe的问题

    项目中用extjs做前提系统的界面是左边用树做目录 右边用tabpanel做内容展示点击树节点的时候 在tabpanel添加新的tab JScript code var newTab = center ...

  2. Windows Server 2012 R2 两个奇葩问题的解决

    1. 服务管理器一打开就崩溃此问题由Intel HD Graphics显卡驱动不兼容引起,卸载掉驱动,仅使用微软基本显示驱动.等待Intel更新符合WDDM 1.3规范的驱动 2. 不能设置静态IP. ...

  3. java内存泄露补充样例

    前几天写了个内存泄露的文章.里面介绍了内存泄露的相关知识:http://blog.csdn.net/u010590685/article/details/46973735 但是里面给的样例不是非常好, ...

  4. 搭建windows server 2008 r2 FTP 后 开启防火墙无法访问的解决办法

    转自http://kkworms.blog.51cto.com/540865/558477 今天在windows server 2008 R2上安装了FTP,安装过程如下,然后添加内置防火墙设置,设置 ...

  5. printf回到上一行开头以及回到本行开头的方法

    回到上一行开头 #include <stdio.h> #include <unistd.h> int main(void) { ; ){ printf("%d\n&q ...

  6. Android开发,布局xml文件命名注意事项——不能包含任何大写字母

    转自:http://blog.sina.com.cn/s/blog_628b45090100zuit.html 在开发Android应用时,会接触到布局文件,一般在 工程名/res/layout/*. ...

  7. 怎样解决MySQL数据库主从复制延迟的问题

    像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的居多,要么用MySQL自带的MySQL NDB Clus ...

  8. webBrowser捕获Alert内容(C#)

    1.引用using mshtml;  //Microsoft HTML Object Library2.[ComVisible(true)] //放到类的上边 public partial class ...

  9. otl下直接用sql查询语句无法查询最新的记录的问题

    最近操作mysql数据库遇到了一个很奇葩的问题,由于我的程序里需要实时读取最新的记录,所以我在程序中采用定时器每20秒读一遍数据库,但是发现除了第一次初始化读取数据库成功以外,后面最新的记录全部都读不 ...

  10. 刚子扯谈:网站运营在左 技术在右 真TM扯

    朋友的书 鄙人的书 2013年8月5日,雨未下,天猴焖 开片语:今天的扯谈内容是我转载我Java学习交流群里面一个哥们,当然我推荐他加入了朋友的网络分析师这个群,我认为那样对他有更大帮助.现在他是XX ...