<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
<!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 type="text/javascript">
function SelectAll(tempControl)
{
//将除头模板中的其它所有的CheckBox取反
var theBox=tempControl;
xState=theBox.checked;
elem=theBox.form.elements;
for(i=0;i<elem.length;i++)
if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
{
if(elem[i].checked!=xState)
elem[i].click();
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView runat="server" AllowPaging="true" ID="gdvView"
AutoGenerateColumns="false" onpageindexchanging="gdvView_PageIndexChanging"
onrowcreated="gdvView_RowCreated"
onrowcommand="gdvView_RowCommand"
>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:Label runat="server" ID="labID" Text='<%# Eval("LinkmanId")%>'>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="客户名称">
<ItemTemplate>
<asp:Label runat="server" ID="labName" Text='<%# Eval("name")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="联系人">
<ItemTemplate>
<asp:Label runat="server" ID="labPost" Text='<%# Eval("post") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<asp:Label runat="server" ID="labGender" Text='<%# Eval("gender") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除" >
<ItemTemplate>
<asp:LinkButton runat="server" CommandName="Delete" ID="lbDelete" Text="删除" OnClientClick='return confirm("确实要删除数据吗?")'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="全选">
<HeaderTemplate>
<asp:CheckBox runat="server" ID="checkAll" Text="全选" οnclick="javascript:SelectAll(this);"/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox runat="server" ID="ckbSelect" OnCheckedChanged="ckbSelect_OnCheckedChanged" AutoPostBack="true"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</div>
<asp:Button runat="server" ID="btnSave" Text="保存" οnclick="btnSave_Click" />
</form>
</body>
</html>
<2>后台化码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace WebApplication2
{
public partial class _Default : System.Web.UI.Page
{
private readonly string ConnString = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Check();
gdvView.DataSource = BindData();
gdvView.DataBind();
}
}
private DataTable BindData()
{
try
{
using (SqlConnection conn = new SqlConnection(ConnString))
{
conn.Open();
string strSql = "select LinkmanId,[name],post,gender from Linkman";
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = strSql;
comm.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataTable dt=new DataTable();
da.Fill(dt);
return dt;
}
}
catch (Exception ex)
{
throw new Exception("在应用程序的请求过程中发生了如下错误:"+ex.ToString());
}
}
protected void gdvView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
Check();
gdvView.PageIndex = e.NewPageIndex;
gdvView.DataSource = BindData();
gdvView.DataBind();
if (Session["UserList"] != null)
{
Hashtable ht = (Hashtable)Session["UserList"];
for (int i = 0; i < gdvView.Rows.Count; i++)
{
if(ht.ContainsKey(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text))
{
((CheckBox)gdvView.Rows[i].Cells[5].FindControl("ckbSelect")).Checked = true;
}
}
}
}
protected void gdvView_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
((Label)e.Row.FindControl("labID")).Visible = false;
}
}
private void Check()
{
Hashtable ht = new Hashtable();
if (Session["UserList"] != null)
{
ht = (Hashtable)Session["UserList"];
if (ht != null)
{
for (int i = 0; i < gdvView.Rows.Count; i++)
{
if (((CheckBox)gdvView.Rows[i].Cells[5].FindControl("ckbSelect")).Checked == true)
{
if (!ht.ContainsKey(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text))
{
ht.Add(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text, ((Label)gdvView.Rows[i].Cells[1].FindControl("labName")).Text);
}
}
else
{
ht.Remove(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text);
}
Session["UserList"] = ht;
}
}
else
{
for (int i = 0; i < gdvView.Rows.Count; i++)
{
if (((CheckBox)gdvView.Rows[i].Cells[5].FindControl("ckbSelect")).Checked == true)
{
ht.Add(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text, ((Label)gdvView.Rows[i].Cells[1].FindControl("labName")).Text);
}
}
}
}
else
{
for (int i = 0; i < gdvView.Rows.Count; i++)
{
if (((CheckBox)gdvView.Rows[i].Cells[5].FindControl("ckbSelect")).Checked == true)
{
ht.Add(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text, ((Label)gdvView.Rows[i].Cells[1].FindControl("labName")).Text);
}
Session["UserList"] = ht;
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
Check();
Hashtable ht = (Hashtable)Session["UserList"];
foreach (DictionaryEntry objDE in ht)
{
Response.Write(objDE.Value.ToString());
}
}
protected void ckbSelect_OnCheckedChanged(object sender, EventArgs e)
{
Check();
gdvView.DataSource = BindData();
gdvView.DataBind();
if (Session["UserList"] != null)
{
Hashtable ht = (Hashtable)Session["UserList"];
for (int i = 0; i < gdvView.Rows.Count; i++)
{
if (ht.ContainsKey(((Label)gdvView.Rows[i].Cells[0].FindControl("labID")).Text))
{
((CheckBox)gdvView.Rows[i].Cells[5].FindControl("ckbSelect")).Checked = true;
}
}
}
}