欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net开发中批量删除记录时实现全选功能的具体方法

程序员文章站 2024-02-29 12:43:46
1 . js实现全选 往页面上拖一个gridview,设置好数据源,并为gridview添加一个模板列,往模板列里添加一个chekcbox,比如下面的代码复制代码 代码如...

1 . 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)" onclick="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通过服务器端代码实现全选

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

向页面同添加一个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;
}