+++ 前台代码
<table>
<tr><td align ="left" >hehe</td></tr>
<tr>
<td>
<asp:Repeater ID="Repeater1" runat="server" >
<HeaderTemplate >
<table>
<tr>
<td>自定义头模板</td>
</tr>
</HeaderTemplate>
<ItemTemplate >
<tr>
<td ><%#Eval("ENAME")%></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate >
<tr>
<td><a href ='repeater06test.aspx?id=<%#Eval("EMPNO") %>'><%#Eval("ENAME")%></a></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate >
<tr>
<td>自定义尾模板</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
<tr>
<td>
<asp:HyperLink ID="first" runat="server">首页</asp:HyperLink>
<asp:HyperLink ID="next" runat="server" Width="49px">下一页</asp:HyperLink>
<asp:HyperLink ID="up" runat="server">上一页</asp:HyperLink>
<asp:HyperLink ID="last" runat="server">末页</asp:HyperLink>
</td>
</tr>
<tr>
<td>当前页为:<asp:Label ID="lblCurrentPage" runat="server" Text="Label"></asp:Label><br />共
<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页</td>
</tr>
</table>
+++ 后台代码
private void pds()
{
OracleConnection conn = new OracleConnection("Data Source=ora9; User ID=scott; Password=tiger; Unicode=True");
DataSet ds = new DataSet();
OracleDataAdapter daEMP = new OracleDataAdapter("SELECT * FROM EMP", conn);
daEMP.Fill(ds, "EMP");
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["EMP"].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 8;
int CurPage;
if (Request.QueryString["Page"] != null)
{
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurPage = 1;
}
pds.CurrentPageIndex = CurPage - 1;
int Count = pds.PageCount;
lblCurrentPage.Text = "当前页:" + CurPage.ToString();
labPage.Text = Count.ToString();
if (!pds.IsFirstPage)
{
this.first.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
this.last.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(Count - 1); ;
up.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
}
else
{
this.first.Visible = false;
this.last.Visible = false;
}
if (!pds.IsLastPage)
{
next.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
}
else
{
this.first.Visible = false;
this.last.Visible = false;
}
Repeater1.DataSource = pds;
Repeater1.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
pds();
this.first.Visible = true;
this.last.Visible = true;
}
}
+++ 说明
(1) PagedDataSource类的数据源必须是视图,如 DataTable.DefaultView,不能是 DataTable;
(2) 不同于之前的一篇,下一页、上一页等按钮不在 Repeater 的 FooterTemplate里。