首先,需要定义一个主键列,用于当选中此行记录时的标识,可以用visible="true"让它隐藏

datagrid批量删除记录<asp:BoundColumn DataField="fkey" Visible="False" ReadOnly="True" />


一、在datagrid控件中添加一模板列,此模板列用于选择要删除的所有item
二、在此模板列<itemTemplate>项中加入一asp.net控件 asp:CheckBox

datagrid批量删除记录<ItemTemplate>
datagrid批量删除记录                                                                        
<asp:CheckBox id="chkRow" runat="server"></asp:CheckBox>
datagrid批量删除记录                                                                    
</ItemTemplate>


 三、在此模板列<HeaderTemplate>项中加入html控件 checkbox,添加一客户端事件onclick="checkAll()"

datagrid批量删除记录<HeaderTemplate>
datagrid批量删除记录    
<input type="checkbox" name="allbox" onclick="javascript:checkAll();"></HeaderTemplate>

四、添加checkAll函数,作用是当选择标题的复选框时,选中datagrid中所有的复选框列表项
>

五、在此模板<FooterTemplate>项中添加一个服务端button,单击此按钮就执行相应的操作
datagrid批量删除记录<asp:LinkButton id="lbntDelAll" runat="server" OnClick="lbntDelAll_OnClick">删除所选项</asp:LinkButton>
六、添加asp:LinkButton控件的服务端代码

 protected void lbntDelAll_OnClick(object sender,System.EventArgs e)
  {
   System.Text.StringBuilder dels=new System.Text.StringBuilder("");//要删除的所有主键
   bool first=true;
   foreach(DataGridItem item in dgData.Items) //遍历所有item找出所有要删除的主键
   {
    switch(item.ItemType )
    {
     case ListItemType.Footer :
      break;
     case ListItemType.Header :
      break;
     default:
      CheckBox chk=(CheckBox)item.Cells[1].FindControl("chkRow");
      if(chk.Checked)
      {
       if(first)
       {
        first=false;
       }
       else
       {
       dels.Append (",");
       }
       
       dels.Append("'"+item.Cells[0].Text +"'");
      }
      break;
    }
    
    
   }
   if(dels.ToString()!="")
   {
    string msg;
    bool b=_m.Delete(dels.ToString(),out msg);  //执行具体操作

     
 
  }

相关文章:

  • 2021-07-21
  • 2022-12-23
  • 2022-02-08
  • 2021-07-24
猜你喜欢
  • 2021-05-19
  • 2021-10-04
  • 2021-08-26
  • 2021-06-06
  • 2021-11-21
  • 2021-07-30
相关资源
相似解决方案