zoukankan      html  css  js  c++  java
  • datagrid批量删除记录

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

    <asp:BoundColumn DataField="fkey" Visible="False" ReadOnly="True" />


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

    <ItemTemplate>
                                                                            
    <asp:CheckBox id="chkRow" runat="server"></asp:CheckBox>
                                                                        
    </ItemTemplate>


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

    <HeaderTemplate>
        
    <input type="checkbox" name="allbox" onclick="javascript:checkAll();"></HeaderTemplate>

    四、添加checkAll函数,作用是当选择标题的复选框时,选中datagrid中所有的复选框列表项
    <script language="javascript">
            
    function checkAll()
            
    {
                
                
    var frm=document.Form1 ;
                
                
                
                
    for(var i=0;i<frm.elements.length;i++)
                
    {
                
                    
    var e=frm.elements[i];
                    
                    
    if(e.name!="allbox" && e.type=="checkbox"//仅对datagrid <itemTemplate>中的checkbox执行操作
                    {
                        
    var eName= e.name.split(':');
                        
    if(eName[0]=="dgData")
                        
    {
                            e.checked
    =frm.allbox.checked;
                        }

                        
                    }

                }

                
                
            }

            
            
    </script>

    五、在此模板<FooterTemplate>项中添加一个服务端button,单击此按钮就执行相应的操作
    <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);  //执行具体操作

         
     
      }

  • 相关阅读:
    C# 中的委托和事件
    SQLserver2000与2005同时安装的问题
    又到毕业时
    WCF服务发布和调用IIS服务
    进销存取项目总结
    URL
    undefined reference to `android::Mutex::lock()'
    关于 ffmpeg ‘UINT64_C’ was not declared in this scope 的错误
    Ti 的 OMX_Core
    linux Perforce 使用
  • 原文地址:https://www.cnblogs.com/eric812/p/351546.html
Copyright © 2011-2022 走看看