GridView中实现全选完成批量审批或批量删除

6 篇文章 0 订阅
3 篇文章 0 订阅

在ASP.NET中,我们会经常使用到GridView,在进行一些操作时,比如对选择项进行删除等操作,这个时候我们会添加复选框,如果我们想批量删除,该怎么办呢?

首先,我们需要在页面中添加一个隐藏域用来存储每行数据对应的ID:

<asp:HiddenField ID="hdfWPBH" runat="server" />
下面是用来显示数据的GridView:

<asp:GridView ID="GridView2" SkinID="GridView1" DataKeyNames="ID" 
                            runat="server" onrowdatabound="GridView2_RowDataBound">
   <RowStyle BackColor="#f2f2f2" />
   <AlternatingRowStyle BackColor="#DCEEFA" />
   <Columns>
      <asp:TemplateField HeaderText="序号">
         <HeaderTemplate>
           <input type="checkbox" name="BoxIdAll" id="BoxIdAll" οnclick="onclicksel();" />
         </HeaderTemplate>
         <ItemTemplate>
           <input id="BoxId" name="BoxId" value='<%#(Convert.ToString(Eval("ID")))%>' type="checkbox" />
         </ItemTemplate>
         <ItemStyle Height="25px" HorizontalAlign="Center" />
         <HeaderStyle Width="3%" Height="28px" BackColor="#80B4CF" HorizontalAlign="Center" />
       </asp:TemplateField>
       <asp:TemplateField HeaderText="序号">
         <ItemTemplate>
            <font color="#000000" style="font-size: 10px">
                <%#GetCountCK()%>
            </font>
         </ItemTemplate>
         <ItemStyle Height="30px" HorizontalAlign="Center" />
         <HeaderStyle Width="5%" Height="30px" BackColor="#80B4CF" HorizontalAlign="Center" />
       </asp:TemplateField>
       <asp:TemplateField HeaderText="物品名称">
         <ItemTemplate>
            <%#strTrim(Convert.ToString(Eval("WPMC")))%>
         </ItemTemplate>
         <ItemStyle HorizontalAlign="Center" />
           <HeaderStyle Width="13%" HorizontalAlign="center" BackColor="#80B4CF" />
       </asp:TemplateField>
   </Columns>
</asp:GridView>
还有一个用来完成审核的按钮:

<asp:ImageButton ID="imgAuditPass" runat="server" BorderColor="#FFCCCC" 
                BorderStyle="Solid" BorderWidth="1px" ImageUrl="~/CWQLC/images/sure.png" 
                οnclick="imgAuditPass_Click" ToolTip="点此完成信息审核" OnClientClick='return batchAudit(this.id)' />

效果图如下:

还需要添加一些Javascript代码:

Header区域的那个实现全选功能的复选框事件:

function onclicksel()
{
   var chkobj = document.getElementById("BoxIdAll");
   if(chkobj.checked == true)
   {
      selAll();
   }
   else
   {
      removeAll();
   }
}

以下是调用的一些函数:

function selAll()
{
  var selobj = document.getElementsByName("BoxId");
  for(var i = 0; i < selobj.length; i++)
  {
    if (!selobj[i].disabled)
    {
      selobj[i].checked = true;
    }
  }
}
	
function removeAll()
{
   var selobj = document.getElementsByName("BoxId");
   for(var i = 0; i < selobj.length; i++)
   {
      selobj[i].checked = false;
   }
}
“审核通过"按钮的客户端事件(OnClientClick='return batchAudit(this.id)')实现客户端验证,Javascript代码:

function batchAudit(id)
{
   var AuditVal = "";
   var bid = document.getElementsByName("BoxId");
   for(var i = 0; i < bid.length; i++)
   {
       if(bid[i].checked == true)
       {
          AuditVal = AuditVal + bid[i].value + ",";
       }
    }
    if(AuditVal.length <= 0)
    {
        alert("请先选择要审核的项");
        return false;
    }
    else
    {
        if(id == "btnDelete")
        {
          if(confirm("您确认要审核吗?"))
          {
             document.getElementById("hdfWPBH").value = AuditVal;
             return true;
          }
          return false;
         }
     }
}

在后台.cs”审核通过“按钮单击事件(οnclick="imgAuditPass_Click")C#代码:

protected void imgAuditPass_Click(object sender, ImageClickEventArgs e)
{
    string[] chkIds = null;
    string batchRegroup = Request.Form["hdfWPBH"].ToString().Trim().TrimEnd(',');//通过这种方式来获得前台隐藏域的内容
    if (batchRegroup.Length != 0)
    {
       chkIds = batchRegroup.Split(',');
    }
    string sql = "";
    for (int i = 0; i < chkIds.Length; i++)
    {
       sql = "UPDATE T_WPXX_CK SET SPR='" + userrealName + "' WHERE ID='" + chkIds[i] + "'";
       wpck.auditOrDelete(sql);//传入SQL语句并执行
    }
    ClientScript.RegisterStartupScript(this.GetType(), "pass", "alert('审核通过!');", true);
    GridViewShow_CK();//GridView绑定数据显示方法
}

这样,只要单击"审核通过"按钮,就能把复选框所选中的那一行的ID放入隐藏域中,只要confirm("您确认要审核吗?")选择"是",即可调用后台的onclike事件并执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值