1.页面代码
Code
<!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>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="grdView" runat="server">
</asp:GridView>
<asp:Label runat="server" ID="lblRowsCount"></asp:Label>
<asp:Button ID="btnFirst" Text="首页" runat="server" OnClick="btnFirst_Click">
</asp:Button>
<asp:Button ID="btnPre" Text="上一页" runat="server" OnClick="btnPre_Click">
</asp:Button>
<asp:Button ID="btnNext" Text="下一页" runat="server" OnClick="btnNext_Click">
</asp:Button>
<asp:Button ID="btnLast" Text="末页" runat="server" OnClick="btnLast_Click">
</asp:Button>
<asp:Label runat="server" ID="lblPagesIndex"></asp:Label>
<asp:Label runat="server" ID="Label2" Text="转到第:"></asp:Label>
<asp:TextBox ID="txt" runat="server" Width="40px" ></asp:TextBox>
<asp:Label runat="server" ID="Label1" Text="页"></asp:Label>
<asp:Button ID="btnSkip" Text="转到" runat="server" OnClick="btnSkip_Click"></asp:Button>
</form>
</body>
</html>
<!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>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="grdView" runat="server">
</asp:GridView>
<asp:Label runat="server" ID="lblRowsCount"></asp:Label>
<asp:Button ID="btnFirst" Text="首页" runat="server" OnClick="btnFirst_Click">
</asp:Button>
<asp:Button ID="btnPre" Text="上一页" runat="server" OnClick="btnPre_Click">
</asp:Button>
<asp:Button ID="btnNext" Text="下一页" runat="server" OnClick="btnNext_Click">
</asp:Button>
<asp:Button ID="btnLast" Text="末页" runat="server" OnClick="btnLast_Click">
</asp:Button>
<asp:Label runat="server" ID="lblPagesIndex"></asp:Label>
<asp:Label runat="server" ID="Label2" Text="转到第:"></asp:Label>
<asp:TextBox ID="txt" runat="server" Width="40px" ></asp:TextBox>
<asp:Label runat="server" ID="Label1" Text="页"></asp:Label>
<asp:Button ID="btnSkip" Text="转到" runat="server" OnClick="btnSkip_Click"></asp:Button>
</form>
</body>
</html>
2.后台代码
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BaiChang.Node;
public partial class admin_Club_User_test : System.Web.UI.Page
{
NodeContext nc = new NodeContext(Utils.BC_ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
this.pageSize = 20;
if (!IsPostBack)
{
SetFirstPage();
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (CurrentPage == 1)
{
btnFirst.Enabled = false;
btnPre.Enabled = false;
}
else
{
btnFirst.Enabled = true;
btnPre.Enabled = true;
}
if (CurrentPage == PageCount)
{
btnNext.Enabled = false;
btnLast.Enabled = false;
}
else
{
btnNext.Enabled = true;
btnLast.Enabled = true;
}
GetCurrent(CurrentPage, PageSize);
lblRowsCount.Text = string.Format("共:{0} 位会员", RowsCount);
lblPagesIndex.Text = string.Format("页次:{0}/{1}", CurrentPage, PageCount);
}
protected void btnFirst_Click(object sender, EventArgs e)
{
SetFirstPage();
}
protected void btnLast_Click(object sender, EventArgs e)
{
SetLastPage();
}
protected void btnPre_Click(object sender,EventArgs e)
{
if (ViewState["currentPage"] == null)
{
this.currentPage = 1;
}
else
{
this.currentPage = int.Parse(ViewState["currentPage"].ToString()) - 1;
ViewState["currentPage"] = currentPage;
}
}
protected void btnNext_Click(object sender, EventArgs e)
{
if (ViewState["currentPage"] != null)
{
this.currentPage = int.Parse(ViewState["currentPage"].ToString()) + 1;
ViewState["currentPage"] = currentPage;
}
}
protected void btnSkip_Click(object sender, EventArgs e)
{
if (txt.Text.Trim() == string.Empty)
{
return;
}
else
{
int skipPage = int.Parse(txt.Text.Trim());
if (skipPage > PageCount)
{
txt.Text = string.Empty;
return;
}
else
{
this.currentPage = skipPage;
ViewState["currentPage"] = currentPage;
}
}
}
void SetFirstPage()
{
this.currentPage = 1;
ViewState["currentPage"] = currentPage;
}
void SetLastPage()
{
this.currentPage = PageCount;
ViewState["currentPage"] = currentPage;
}
IEnumerable<BC_Club> Select()
{
var clubs = nc.BC_Club.Where(m => m.FilterState != 99);
return clubs;
}
void GetCurrent(int start,int rows)
{
grdView.Rows.Clear();
grdView.DataSource = Select().Skip(pageSize * (start - 1)).Take(rows).ToList();
grdView.DataBind();
}
private int RowsCount
{
get
{
if( ViewState["RowsCount"]==null)
return Select().Count();
else
return int.Parse(ViewState["RowsCount"].ToString());
}
}
private int pageSize;
private int PageSize
{
set { value = this.pageSize; }
get { return pageSize; }
}
private int currentPage;
private int CurrentPage
{
set { value = this.currentPage; }
get { return this.currentPage; }
}
private int PageCount
{
get { return (int)Math.Ceiling((double)RowsCount / PageSize); }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BaiChang.Node;
public partial class admin_Club_User_test : System.Web.UI.Page
{
NodeContext nc = new NodeContext(Utils.BC_ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
this.pageSize = 20;
if (!IsPostBack)
{
SetFirstPage();
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if (CurrentPage == 1)
{
btnFirst.Enabled = false;
btnPre.Enabled = false;
}
else
{
btnFirst.Enabled = true;
btnPre.Enabled = true;
}
if (CurrentPage == PageCount)
{
btnNext.Enabled = false;
btnLast.Enabled = false;
}
else
{
btnNext.Enabled = true;
btnLast.Enabled = true;
}
GetCurrent(CurrentPage, PageSize);
lblRowsCount.Text = string.Format("共:{0} 位会员", RowsCount);
lblPagesIndex.Text = string.Format("页次:{0}/{1}", CurrentPage, PageCount);
}
protected void btnFirst_Click(object sender, EventArgs e)
{
SetFirstPage();
}
protected void btnLast_Click(object sender, EventArgs e)
{
SetLastPage();
}
protected void btnPre_Click(object sender,EventArgs e)
{
if (ViewState["currentPage"] == null)
{
this.currentPage = 1;
}
else
{
this.currentPage = int.Parse(ViewState["currentPage"].ToString()) - 1;
ViewState["currentPage"] = currentPage;
}
}
protected void btnNext_Click(object sender, EventArgs e)
{
if (ViewState["currentPage"] != null)
{
this.currentPage = int.Parse(ViewState["currentPage"].ToString()) + 1;
ViewState["currentPage"] = currentPage;
}
}
protected void btnSkip_Click(object sender, EventArgs e)
{
if (txt.Text.Trim() == string.Empty)
{
return;
}
else
{
int skipPage = int.Parse(txt.Text.Trim());
if (skipPage > PageCount)
{
txt.Text = string.Empty;
return;
}
else
{
this.currentPage = skipPage;
ViewState["currentPage"] = currentPage;
}
}
}
void SetFirstPage()
{
this.currentPage = 1;
ViewState["currentPage"] = currentPage;
}
void SetLastPage()
{
this.currentPage = PageCount;
ViewState["currentPage"] = currentPage;
}
IEnumerable<BC_Club> Select()
{
var clubs = nc.BC_Club.Where(m => m.FilterState != 99);
return clubs;
}
void GetCurrent(int start,int rows)
{
grdView.Rows.Clear();
grdView.DataSource = Select().Skip(pageSize * (start - 1)).Take(rows).ToList();
grdView.DataBind();
}
private int RowsCount
{
get
{
if( ViewState["RowsCount"]==null)
return Select().Count();
else
return int.Parse(ViewState["RowsCount"].ToString());
}
}
private int pageSize;
private int PageSize
{
set { value = this.pageSize; }
get { return pageSize; }
}
private int currentPage;
private int CurrentPage
{
set { value = this.currentPage; }
get { return this.currentPage; }
}
private int PageCount
{
get { return (int)Math.Ceiling((double)RowsCount / PageSize); }
}
}
注释: