zoukankan      html  css  js  c++  java
  • 在GridView中实现全选反选的例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView控件.aspx.cs" Inherits="WebApplication1.GridView控件" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script language="javascript" type="text/javascript" >
            //反选
            function ReverseSelect() {
                var checkbox = document.all.CheckboxGroup;
                if (checkbox == null) 
                {
                    return false;
                }
                if (checkbox.length + "" != "undefined")
                 {
                    for (var i = 0; i < checkbox.length; i++) {
                        checkbox[i].checked = !checkbox[i].checked;
                    }
                }
                else {
                    //修正当列表长度为1,不能反选
                    checkbox.checked = !checkbox[i].checked;
                }
                return false;
            }
            //全选
            function SelectAll() {
             var checkbox = document.all.CheckboxGroup;
                if (checkbox == null) 
                {
                    return false;
                }
                if (checkbox.length + "" != "undefined") {
                    for (var i = 0; i < checkbox.length; i++) {
                        checkbox[i].checked = !checkbox[i].checked;
                    }
                }
                else {
                    checkbox.checked = true;
                }
                return false;
            }
            //检查至少选一项
            function CheckHasSelectedItem() {
                var checkbox = document.all.CheckboxGroup;
                 if (checkbox == null) 
                {
                    return false;
                }
                if (checkbox.length + "" != "undefined") {
                    for (var i = 0; i < checkbox.length; i++)
                     {
                        if(checkbox[i].checked)
                        {
                        return true;
                        }
                    }
                }
                else {
                       return false;
                }
            }
            //删除用户前的确认
            function ConfirmDelete() {
                if (CheckHasSelectedItem())//如果少选择一项
                {
                    return confirm("确定删除该用户?");
                }
                else {
                    alter("至少选择一项");
                    return false;
    
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
          <asp:GridView ID="gvUserList" runat="server" AutoGenerateColumns="false" Width="800px" AllowPaging="True"
                onpageindexchanging="gvUserList_PageIndexChanging" PageSize="5">
            <Columns>
            <asp:TemplateField>
             <ItemTemplate>
             <input name ='CheckboxGroup' type='checkbox' value='<%#Eval("ID")%>'/>
             </ItemTemplate>
            </asp:TemplateField>
             <asp:BoundField DataField="ID" HeaderText="编码" />
             <asp:HyperLinkField  DataNavigateUrlFields="ID" 
               DataNavigateUrlFormatString=" GridView控件.aspx?ID={0}"
                DataTextField="RealName" HeaderText="查看" />
             <asp:BoundField DataField="UserName" HeaderText="用户姓名" />
             <asp:BoundField DataField="RealName" HeaderText="真实姓名" />
             <asp:BoundField DataField="Age" HeaderText="年龄" />
             <asp:CheckBoxField DataField="Sex" HeaderText="" />
             <asp:BoundField DataField="Mobile" HeaderText="手机" />
             <asp:TemplateField HeaderText="电子邮件">
               <AlternatingItemTemplate>
                <a href='emailto:<%#Eval("Email")%>'>发邮件给<%#Eval("RealName")%></a>
               </AlternatingItemTemplate>
               <ItemTemplate>
                <%#Eval("Email")%>
               </ItemTemplate>
             </asp:TemplateField>
            </Columns>
          </asp:GridView>
          <table border="0" width="800" cellpadding="0" cellspacing="0">
           <tr><td><a style="text-decoration:underline" href="#" onclick="SelectAll();">全选</a></td>
           <td><a style="text-decoration:underline" href="#" onclick="ReverseSelect();">反选</a></td>
             <td>
             <asp:Button ID="btnDelete" runat="server" OnClientClick="javascript:return ConfirmDelete();"
             OnClick="btnDelete_Click" Text="删除" />
             </td>
           </tr>
          </table>
        </div>
        </form>
    </body>
    </html>

    CS代码:

    sing System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Data;
    
    namespace WebApplication1
    {
        public partial class GridView控件 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    //默认显示第一页 但索引为0
                 BindGridView(0);
                }
            }
            //指定绑定页面的数据
            private void BindGridView(int pageIndex)
            {
                SqlConnection conn = new SqlConnection(@"server=Rose-PCSQLEXPRESS;Database=User;User Id=sa;password=");
                SqlCommand command = new SqlCommand("Select * from UserInfo", conn);
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataTable data = new DataTable();
                adapter.Fill(data);
    
                #region 注意这部分代码可以在设计视图中设置,不必卸载代码里
                gvUserList.AllowPaging = true;//设置允许自动分页
                //gvUserList.AutoGenerateColumns=false;//设置不允许自动绑定
                gvUserList.PageSize = 5;
                #endregion
    
                gvUserList.DataSource = data;
                gvUserList.PageIndex = pageIndex;//设置显示第几页
                gvUserList.DataBind();
            }
            //翻页事件
            
            protected void gvUserList_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                //指定新页面,重新绑定数据
                BindGridView(e.NewPageIndex);
            }
    
           
            //删除选中用户
            protected void btnDelete_Click(object sender, EventArgs e)
            {
                string Sql = "delete from UserInfo where ID in (" +Request["CheckboxGroup"] + ")";
                SqlConnection conn = new SqlConnection(@"server=Rose-PCSQLEXPRESS;Database=User;User Id=sa;password=");
                SqlCommand command = new SqlCommand(Sql, conn);
                conn.Open();
                int count = command.ExecuteNonQuery();
                conn.Close();
                //删除成功后给出提示
                if (count >0)
                {
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "success",
                        "<script language='javascript'>alert('删除成功!');" + "window.location='MultiSelectGridView.aspx';</script>");
    
                }
                else
                {
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "fail",
                        "<script language='javascript'>alert('删除成功!');</script>");
                }
            } 
            
        }
    }
  • 相关阅读:
    adb client, adb server, adbd原理浅析(附带我的操作过程)【转】
    ADB运行框架原理解析【转】
    android adb 源码框架分析(2 角色)【转】
    android adb 源码框架分析(1 系统)【转】
    ADB 源码分析(一) ——ADB模块简述【转】
    Awesome Adb——一份超全超详细的 ADB 用法大全【转】
    Android系统设置Android adb 开关的方法【转】
    [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】
    [RK3399][Android7.1] 调试笔记 --- 模块编译32位动态库【转】
    Linux内核中工作队列的使用work_struct,delayed_work【转】
  • 原文地址:https://www.cnblogs.com/ai394495243/p/3356175.html
Copyright © 2011-2022 走看看