HTML页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageData.aspx.cs" Inherits="PageDatasource" %>
<!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">
<div>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"XH") %>
<%# DataBinder.Eval(Container.DataItem,"XM") %>
<%# DataBinder.Eval(Container.DataItem,"XB") %>
<%# DataBinder.Eval(Container.DataItem,"CSSJ") %>
<%# DataBinder.Eval(Container.DataItem,"ZXF") %><br />
</ItemTemplate>
<AlternatingItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"XH") %>
<%# DataBinder.Eval(Container.DataItem,"XM") %>
<%# DataBinder.Eval(Container.DataItem,"XB") %>
<%# DataBinder.Eval(Container.DataItem,"CSSJ") %>
<%# DataBinder.Eval(Container.DataItem,"ZXF") %><br />
</AlternatingItemTemplate>
<HeaderTemplate>
<hr />
</HeaderTemplate>
<FooterTemplate>
<hr />
</FooterTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:Repeater>
</div>
<asp:Button ID="top" runat="server" οnclick="top_Click" Text="首页" />
<asp:Button ID="next" runat="server" οnclick="next_Click" Text="下一页" />
<asp:Button ID="pre" runat="server" οnclick="pre_Click" Text="上一页" />
<asp:Button ID="bottom" runat="server" οnclick="bottom_Click" Text="未页" />
<span lang="zh-cn">共<asp:Label ID="Label1" runat="server"></asp:Label>
页,当前是第<asp:Label ID="Label2" runat="server"></asp:Label>
页</span></form>
</body>
</html>
后台代码如下:
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.Web.Configuration;
using System.Data.SqlClient;
public partial class PageDatasource : System.Web.UI.Page
{
private static SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["xscjConnectionString"].ConnectionString);
private const int PageSize = 3;
private static int TotalPageCount = 0;
private int RecordCount = 0;
private int CurrentPageIndex=0;
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["CurrentPageIndex"] != null)
{
this.CurrentPageIndex = Int32.Parse(ViewState["CurrentPageIndex"].ToString());
}
if (!this.IsPostBack)
{
this.Label2.Text = "1";
this.GetTotalPageInfo();
this.Label1.Text=TotalPageCount.ToString();
this.CurrentPageIndex = 0;
this.DataBindToReader();
}
}
private void GetTotalPageInfo()
{
string sql = "select count(*) from xs";
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
RecordCount = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
TotalPageCount = RecordCount / PageSize;
if (TotalPageCount * PageSize < RecordCount)
{
TotalPageCount++;
}
}
private void DataBindToReader()
{
this.Label2.Text = (this.CurrentPageIndex+1).ToString();
DataSet ds = GetDataSet(this.CurrentPageIndex * PageSize, PageSize);
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables[0].DefaultView;
ps.AllowPaging = true;
this.Repeater1.DataSource = ps;
this.Repeater1.DataBind();
this.FirstLastPage();
}
private void FirstLastPage()
{
if (TotalPageCount > 0)
{
if (this.CurrentPageIndex == 0)
{
this.top.Enabled = false;
this.pre.Enabled = false;
this.next.Enabled = true;
this.bottom.Enabled = true;
}
if (this.CurrentPageIndex == TotalPageCount - 1)
{
this.top.Enabled = true;
this.pre.Enabled = true;
this.next.Enabled = false;
this.bottom.Enabled = false;
}
if (this.CurrentPageIndex != 0 && this.CurrentPageIndex != TotalPageCount - 1)
{
this.top.Enabled = true;
this.pre.Enabled = true;
this.next.Enabled = true;
this.bottom.Enabled = true;
}
}
}
private DataSet GetDataSet(int startIndex,int endIndex)
{
string sql = "select * from xs";
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql,con);
DataSet ds = new DataSet();
da.Fill(ds,startIndex,endIndex,"xs");
con.Close();
return ds;
}
protected void top_Click(object sender, EventArgs e)
{
this.CurrentPageIndex = 0;
ViewState["CurrentPageIndex"] = this.CurrentPageIndex.ToString();
this.DataBindToReader();
}
protected void next_Click(object sender, EventArgs e)
{
this.CurrentPageIndex = (int)Math.Min(TotalPageCount - 1, this.CurrentPageIndex + 1);
ViewState["CurrentPageIndex"] = this.CurrentPageIndex.ToString();
this.DataBindToReader();
}
protected void pre_Click(object sender, EventArgs e)
{
this.CurrentPageIndex = (int)Math.Max(0, this.CurrentPageIndex - 1);
ViewState["CurrentPageIndex"] = this.CurrentPageIndex.ToString();
this.DataBindToReader();
}
protected void bottom_Click(object sender, EventArgs e)
{
this.CurrentPageIndex = TotalPageCount - 1;
ViewState["CurrentPageIndex"] = this.CurrentPageIndex.ToString();
this.DataBindToReader();
}
}