.net开发中批量删除记录时如何实现全选功能

 做大批量的数据删除时,如果有个全选按钮把多个页面上显示的记录全都选中删除那比一条条的删除要人性化得多,接下来说一说如何实现,其实网上一搜有好多文章都是说如何进行批量删除的,大体上可以分为两大类1:利用JS脚本实现全选。

2:在 服务器端实现全选

首先来说一说如何利用JS实现全选
往页面上拖一个GridView,设置好数据源,并为GridView添加一个模板列,往模板列里添加一个chekcbox,比如下面的代码
< asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="False"  DataKeyNames ="ProductID"
    DataSourceID
="SqlDataSource1" >
    
< Columns >
        
< asp:BoundField  DataField ="ProductID"  HeaderText ="ProductID"  InsertVisible ="False"
            ReadOnly
="True"  SortExpression ="ProductID"   />
        
< asp:BoundField  DataField ="ProductName"  HeaderText ="ProductName"  SortExpression ="ProductName"   />
        
< asp:BoundField  DataField ="SupplierID"  HeaderText ="SupplierID"  SortExpression ="SupplierID"   />
        
< asp:BoundField  DataField ="CategoryID"  HeaderText ="CategoryID"  SortExpression ="CategoryID"   />
        
< asp:TemplateField >
            
< ItemTemplate >
                
< asp:CheckBox  ID ="chk_Del"  runat ="server"   />
            
</ ItemTemplate >
        
</ asp:TemplateField >
    
</ Columns >
</ asp:GridView >
接下来往页面上添加一个checkbox控件

<asp:CheckBox ID="chk_JS" runat="server" Text="全选(JS)" οnclick="selectAll(this)"/>
并为该控件编写JS脚本如下:
< script type = " text/javascript " >
    
// 根据传入的checkbox的选中状态设置所有checkbox的选中状态
     function  selectAll(obj)
    
{
        
var allInput = document.getElementsByTagName("input");
        
//alert(allInput.length);
        var loopTime = allInput.length;
        
for(i = 0;i < loopTime;i++)
        
{
            
//alert(allInput[i].type);
            if(allInput[i].type == "checkbox")
            
{
                allInput[i].checked 
= obj.checked;
            }

        }

    }

</ script >
基本效果就有了,接下来我们在点缀一下。在网页中添加一个button
<asp:Button ID="btn_DeleteRecords" runat="server" OnClientClick="return judgeSelect();" Text="删除选中记录" />
添加JS脚本
// 判断是否选中记录,用户确认删除
function  judgeSelect()
{
    
var result = false;
    
var allInput = document.getElementsByTagName("input");
    
var loopTime = allInput.length;
    
for(i = 0;i < loopTime;i++)
    
{
        
if(allInput[i].checked)
        
{
            result 
= true;
            
break;
        }

    }

    
if(!result)
    
{
        alert(
"请先选则要删除的记录!");
        
return result;
    }

    result 
= confirm("你确认要删除选定的记录吗?");
    
return result;
}

2通过服务器端代码实现全选


向页面同添加一个CheckBox并将AutoPostBack属性设置成true,并为它添加CheckedChanged事件
<asp:CheckBox ID="chk_Server" runat="server" OnCheckedChanged="chk_Server_CheckedChanged" Text="全选(Server)" AutoPostBack="True" />
事件代码如下

int  a  =   this .GridView1.Rows.Count;
for  ( int  i  =   0 ; i  <  a; i ++ )
{
    CheckBox chk 
= (CheckBox)this.GridView1.Rows[i].FindControl("chk_Del");
    chk.Checked 
= this.chk_Server.Checked;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值