<%@ 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 = ; 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 = ; 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 = ; 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="">
<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="" width="" cellpadding="" cellspacing="">
<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();
}
}
//指定绑定页面的数据
private void BindGridView(int pageIndex)
{
SqlConnection conn = new SqlConnection(@"server=Rose-PC\SQLEXPRESS;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 = ;
#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-PC\SQLEXPRESS;Database=User;User Id=sa;password=");
SqlCommand command = new SqlCommand(Sql, conn);
conn.Open();
int count = command.ExecuteNonQuery();
conn.Close();
//删除成功后给出提示
if (count >)
{
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>");
}
} }
}

在GridView中实现全选反选的例子的更多相关文章

  1. React中的全选反选问题

    全选反选问题 1.在state里维护一个数组,例如showArr:[] 2.绑定点击事件的时候将当前这个当选按钮的index加进来 <span className='arrow' onClick ...

  2. GridView中实现全选与取消全选,以便同时删除多条数据

    我们项目后台操作中不可避免的会有同时删除多项的操作,本文实现的就是当点击全选时,选定当前页中所有项,当取消了某一项的选定,则“全选”CheckBox的checked也为false:然后在后台中取到所选 ...

  3. vue2.0实现在table中实现全选和反选

    其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...

  4. 关于Winform下DataGridView中实现checkbox全选反选、同步列表项的处理

    近期接手一个winform 项目,虽然之前有.net 的经验,但是对一些控件的用法还不是很熟悉. 这段时间将会记录一些在工作中遇到的坎坷以及对应的解决办法,写出来与大家分享并希望大神提出更好解决方法来 ...

  5. vue2.0在table中实现全选和反选

    其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...

  6. html中全选反选

    <!--第一层--> <div class="first"> <div class="first_top"> <img ...

  7. JQuery 全选 反选 获取Table 中指定td的元素值

    //全选 function initTableCheckbox() { var $thr = $('table thead tr'); var $checkAllTh = $('<th>& ...

  8. BootStrapt iCheck表单美化插件使用方法详解(含参数、事件等) 全选 反选

    特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 桌面和移动设备 2.支持触摸设备 — iOS.Android.BlackBerry.Windows Phone等系统 4.方便 ...

  9. 用javascript实现全选/反选组件

    以下是本人制作的全选/反选 组件,供广大同行参考.指正: 效果如图: 在实现的过程中,全选和全部取消选中这两个功能较为简单,只需用for循环遍历所有复选框为true或false即可.反选也较为简单,也 ...

随机推荐

  1. WebPart设置杂项

    CS写法:                    } 后台写法:  public D_ZoneLimitView WebPart { get; set; }

  2. Jar包下载地址

    Download Apache log4j 1.2.17下载: http://logging.apache.org/log4j/1.2/download.html jsoup http://jsoup ...

  3. iOS 处理键盘遮挡TextField、TextView问题

    之前处理键盘遮挡问题都是在每一个控制器进行单独处理,这样做真的是非常的费事,今天在做项目的时候就想到自己封装一个,记录一下这个“跌宕起伏”的过程. 思路是这样的:计算文本编辑控件Frame与键盘Fra ...

  4. 交换机access和trunk的一些小结(转)

     以太网端口有 3种链路类型:access.trunk.hybird Access类型端口只能属于1个VLAN 般用于连接计算机 端口: Trunk类型端口可以允许多个VLAN通过,可以接收和发送多个 ...

  5. SSL是啥?

    SSL(Secure Socket Layer) 的主要作用是验证客户端与服务器的有效性,并在数据传输前,就进行加密,避免在传输过程中被窃取,同时亦可保证数据的完整性,确保数据在传输过程中不被篡改,以 ...

  6. zoj 2071 Technology Trader 最大权闭合子图

    传送门 和上一题一样, 也是一个最大权闭合子图.不过建图好麻烦的感觉  写了好久. 源点和原材料连边, 权值为val. 汇点和产品连边, 权值为val. 产品与和它有关系的材料连边, 权值inf. 最 ...

  7. git 导入代码到已有仓库

    git remote add origin https://----------- git push -u origin master //这两行将该目录下的文件推送到远端(origin)上的 &qu ...

  8. 关于oracle spfile配置文件问题

    $ORACLE_SID决定spfile dbs 默认 在启动Oracle数据库时报错,如下: [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: R ...

  9. Linux-NGINX 能否添加P3P头,如何添加。 - 德问:编程社交问答

    Linux-NGINX 能否添加P3P头,如何添加. - 德问:编程社交问答   您的投票让 杜鑫 声誉值增加5分. 支持投票,不仅能让提问用户获得声誉值,让好的问题有更多的曝光,更能帮助社区筛选出好 ...

  10. css学习笔记四

    广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...