码迷,mamicode.com
首页 > 其他好文 > 详细

GridView 翻页记住选项

时间:2017-08-17 20:24:24      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:class   auto   protect   nbsp   rgs   protected   row   ade   default   

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="ObjectDataSource1"
PageSize="5" onpageindexchanging="GridView1_PageIndexChanging"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="ckbSelAll" runat="server" Text="" OnCheckedChanged="cbSelAll_CheckedChanged" AutoPostBack="true" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="ckbxSel" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="xm" HeaderText="xm" SortExpression="xm" />
</Columns>
</asp:GridView>

 

 

--代码页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ViewState["selectItems"] = "";
}
}

protected void SelectAll()
{
CheckBox cb1 = GridView1.HeaderRow.FindControl("ckbSelAll") as CheckBox;
string strOldSelect = ViewState["selectItems"].ToString();
string[] oldSelect = strOldSelect.Split(new char[] { ‘,‘ });
List<string> listSelect = oldSelect.ToList();
string nowId;
if (cb1.Checked)//选中
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb2 = GridView1.Rows[i].FindControl("ckbxSel") as CheckBox;
cb2.Checked = true;

nowId = GridView1.Rows[i].Cells[1].Text;
if (false == listSelect.Contains(nowId))
{
listSelect.Add(nowId);
}
}
}
else//取消
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb2 = GridView1.Rows[i].FindControl("ckbxSel") as CheckBox;
cb2.Checked = false;

nowId = GridView1.Rows[i].Cells[1].Text;
if (true == listSelect.Contains(nowId))
{
listSelect.Remove(nowId);
}
}
}
}

protected void cbSelAll_CheckedChanged(object sender, EventArgs e)
{
this.SelectAll();
}

//翻页
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
string strSelectLian = ViewState["selectItems"].ToString();
string nowId;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chk = GridView1.Rows[i].FindControl("ckbxSel") as CheckBox;
nowId = GridView1.Rows[i].Cells[1].Text;
if (true == chk.Checked)
{
strSelectLian += "," + nowId;
}
}
strSelectLian = strSelectLian.Trim(‘,‘);
ViewState["selectItems"] = strSelectLian;

//翻页
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSourceID = "ObjectDataSource1";
GridView1.DataBind();
}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//绑定原来选项
if (e.Row.RowIndex != -1)//注意加上这句
{
string strSelectLian = ViewState["selectItems"].ToString();
string[] strSelectFen = strSelectLian.Split(new char[] { ‘,‘ });
string nowId = e.Row.Cells[1].Text;
CheckBox chk = e.Row.FindControl("ckbxSel") as CheckBox;
for (int j = 0; j < strSelectFen.Length; j++)
{
if (nowId == strSelectFen[j])
{
chk.Checked = true;
}
}
}
}

}

 

GridView 翻页记住选项

标签:class   auto   protect   nbsp   rgs   protected   row   ade   default   

原文地址:http://www.cnblogs.com/yubufan/p/7383777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!