zoukankan      html  css  js  c++  java
  • GridView中实现全选与取消全选,以便同时删除多条数据

      我们项目后台操作中不可避免的会有同时删除多项的操作,本文实现的就是当点击全选时,选定当前页中所有项,当取消了某一项的选定,则“全选”CheckBox的checked也为false;然后在后台中取到所选定的项的ID,实现同时删除多项的功能。
    前台代码
     1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="NewsForm.aspx.cs" Inherits="Admin_NewsForm" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <title>无标题页</title>
     8     <script type="text/javascript" language="javascript">
     9 function isOrNotCheckAll(checkValue)
    10 {
    11     var arrAllCheckBoxes = document.getElementsByTagName("input");
    12     //check all
    13     if(checkValue==true)
    14     {
    15         for(i=0;i<arrAllCheckBoxes.length;i++)
    16         {
    17             if(document.getElementById(arrAllCheckBoxes[i].id).type=="checkbox")
    18             {
    19                 document.getElementById(arrAllCheckBoxes[i].id).checked=true;
    20             }
    21         }
    22     }
    23     //do not check any one 
    24     if(checkValue==false)
    25     {
    26         for(i=0;i<arrAllCheckBoxes.length;i++)
    27         {
    28             if(document.getElementById(arrAllCheckBoxes[i].id).type=="checkbox")
    29             {
    30                 document.getElementById(arrAllCheckBoxes[i].id).checked=false;
    31             }
    32         }
    33     }
    34 }
    35 function CBDeleteClick(clientID,checkAllClientID)
    36 {
    37     var arrAllCheckBoxes = document.getElementsByTagName("input");
    38     //there has some one not be checked
    39     if(document.getElementById(clientID).checked==false)
    40     {
    41         for(i=0;i<arrAllCheckBoxes.length;i++)
    42         {
    43             if(arrAllCheckBoxes[i].id.indexOf("CheckAll")!=-1)
    44             {
    45                 arrAllCheckBoxes[i].checked=false;
    46             }
    47         }
    48     }
    49 }
    50     </script>
    51 </head>
    52 <body>
    53     <form id="form1" runat="server">
    54    <asp:Image ID="Image1" runat="server"  ImageUrl="HXImages/button/btn_add.gif" />
    55     <asp:ImageButton ID="BtnDelete" runat="server" 
    56         ImageUrl="~/Admin/HXImages/button/btn_del.gif" onclick="BtnDelete_Click" />
    57     <asp:GridView ID="GVNews" runat="server" AutoGenerateColumns="False" DataKeyNames="newsID" 
    58         Width="100%"  onrowdatabound="GVNews_RowDataBound" 
    59         onrowdeleting="GVNews_RowDeleting" AllowPaging="True" 
    60         onpageindexchanging="GVNews_PageIndexChanging" PageSize="3" >
    61         <Columns>
    62               <asp:TemplateField>
    63               <HeaderTemplate>
    64                     全选
    65                     <asp:CheckBox ID="CheckAll" runat="server" OnClick="javascript: return isOrNotCheckAll (this.checked);" />
    66               </HeaderTemplate>
    67               <ItemTemplate>
    68                   <asp:CheckBox ID="CBDelete" runat="server" />
    69               </ItemTemplate>
    70                   <ItemStyle HorizontalAlign="Center" />
    71               </asp:TemplateField>
    72               
    73             <asp:BoundField DataField="newsID" HeaderText="序号" >
    74                 <ItemStyle HorizontalAlign="Center" />
    75             </asp:BoundField>
    76             <asp:BoundField DataField="newsTitle" HeaderText="标题">
    77                 <ItemStyle HorizontalAlign="Center" />
    78             </asp:BoundField>
    79             <asp:TemplateField HeaderText="添加日期">
    80                 <ItemStyle HorizontalAlign="Center" />
    81                 <ItemTemplate>
    82                     <%# Convert.ToDateTime(Eval("newsDate")).ToString("yyyy-MM-dd")%>
    83                 </ItemTemplate>
    84             </asp:TemplateField>
    85             <asp:BoundField DataField="newsDegree" HeaderText="点击次数(次)">
    86                 <ItemStyle HorizontalAlign="Center" />
    87             </asp:BoundField>
    88             <asp:TemplateField HeaderText="操作">
    89                     <ItemStyle HorizontalAlign="Center" />
    90                     <ItemTemplate>
    91                         <asp:ImageButton ID="ImgDel" title="删除" CommandName="delete" ImageUrl="HXImages/del.gif" runat="server" />
    92                     </ItemTemplate>
    93                 </asp:TemplateField>
    94         </Columns>
    95     </asp:GridView>
    96     </form>
    97 </body>
    98 </html>
    后台代码
     1 using System;
     2 using System.Collections;
     3 using System.Configuration;
     4 using System.Data;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Security;
     8 using System.Web.UI;
     9 using System.Web.UI.HtmlControls;
    10 using System.Web.UI.WebControls;
    11 using System.Web.UI.WebControls.WebParts;
    12 using System.Xml.Linq;
    13 
    14 public partial class Admin_NewsForm : System.Web.UI.Page
    15 {
    16     string sql = null;
    17     protected void Page_Load(object sender, EventArgs e)
    18     {
    19         if (!IsPostBack)
    20         {
    21             BindGVNews();
    22             BtnDelete.Attributes.Add("onclick""return confirm('确定要删除吗?');");
    23         }
    24     }
    25     void BindGVNews()
    26     {
    27         sql = string.Format("select * from newsTable order by newsID desc");
    28         DataTable dt = DataBase.ExecuteDataSet(sql).Tables[0];
    29         GVNews.DataSource = dt.DefaultView;
    30         GVNews.DataBind();
    31     }
    32     protected void GVNews_RowDeleting(object sender, GridViewDeleteEventArgs e)
    33     {
    34         string newsID = GVNews.DataKeys[e.RowIndex].Value.ToString();
    35         sql = string.Format("delete from newsTable where newsID={0}", Convert.ToInt32(newsID));
    36         int i = DataBase.ExecuteNonQuery(sql);
    37         if (i > 0)
    38         {
    39             BindGVNews();
    40         }
    41     }
    42     protected void GVNews_PageIndexChanging(object sender, GridViewPageEventArgs e)
    43     {
    44         GVNews.PageIndex = e.NewPageIndex;
    45         BindGVNews();
    46     }
    47     protected void GVNews_RowDataBound(object sender, GridViewRowEventArgs e)
    48     {
    49         if (e.Row.RowType == DataControlRowType.DataRow)
    50         {
    51             ((ImageButton)e.Row.FindControl("ImgDel")).Attributes.Add("onclick""return confirm('确定要删除吗?')");
    52             ((CheckBox)e.Row.FindControl("CBDelete")).Attributes.Add("onclick""CBDeleteClick('"+((CheckBox)e.Row.FindControl("CBDelete")).ClientID+"')");
    53         }
    54     }
    55     string GetDeleteIDs()
    56     {
    57         string IDs = null;
    58         foreach (GridViewRow gvr in GVNews.Rows)
    59         {
    60             CheckBox cb = (CheckBox)gvr.FindControl("CBDelete");
    61             if (cb.Checked)
    62             {
    63                 if (IDs == null)
    64                 {
    65                     IDs = GVNews.DataKeys[gvr.RowIndex].Value.ToString();
    66                 }
    67                 else
    68                 {
    69                     IDs = IDs+"," + GVNews.DataKeys[gvr.RowIndex].Value.ToString();
    70                 }
    71             }
    72         }
    73         return IDs;
    74     }
    75     protected void BtnDelete_Click(object sender, ImageClickEventArgs e)
    76     {
    77         string newsIDs = this.GetDeleteIDs();
    78         if (newsIDs != null)
    79         {
    80             sql = string.Format("delete from newsTable where newsID in ({0})", newsIDs);
    81             int i = DataBase.ExecuteNonQuery(sql);
    82             if (i > 0)
    83             {
    84                 BindGVNews();
    85             }
    86         }
    87         else
    88         {
    89             Response.Write("<script>alert('请指定要删除的项!');</script>");
    90         }
    91     }
    92 }
  • 相关阅读:
    软工作业01 P18 第四题
    自我介绍
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练
    进行代码复审训练
    源代码管理工具
    软工作业PSP与单元测试训练
    作业
    第一堂课
  • 原文地址:https://www.cnblogs.com/lotuslove/p/1664819.html
Copyright © 2011-2022 走看看