在 http://xml.sz.luohuedu.net 受到启发,网站上给出了C#的代码,我这里使用vb.net,顺便也把那边的copy过来。
Repeater和DataList控件提供了一个快速、灵活的表现数据的方式,但是,它们没有内建的分页功能;DataGrid控件提供了内建的分页功能,但它的结构比较复杂。下面就用PagedDataSource类实现Repeater和DataList的分页。 PagedDataSource封装了DataGrid的分页属性,我们可以象DataGrid那样进行分页。
C# —
OleDbConnection objConn=new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” +
Server.MapPath(“../aspxWeb.mdb”));
OleDbDataAdapter objCommand=new OleDbDataAdapter(“select * from Document”,objConn);
DataSet ds=new DataSet();
objCommand.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 5;
int CurPage;
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
objPds.CurrentPageIndex = CurPage-1;
lblCurrentPage.Text = “当前页:” + CurPage.ToString();
if (!objPds.IsFirstPage)
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage-1);
if (!objPds.IsLastPage)
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ “?Page=” + Convert.ToString(CurPage+1);
Repeater1.DataSource=objPds;
Repeater1.DataBind();
VB.NET
Dim sqlstr As String = ConfigurationSettings.AppSettings(“adminsql_connstr”)
Dim con As SqlConnection = New SqlConnection(sqlstr)
Dim links_sql As String = “select * from links”
Dim MyAdapter As SqlDataAdapter = New SqlDataAdapter(links_sql, con)
Dim ds As DataSet = New DataSet
MyAdapter.Fill(ds)
Dim objPds As PagedDataSource = New PagedDataSource
objPds.DataSource = ds.Tables(0).DefaultView
objPds.AllowPaging = True
objPds.PageSize = 5
Dim CurPage As Integer
If Not Request.QueryString(“Page”) Is Nothing Then
CurPage = Convert.ToInt32(Request.QueryString(“Page”))
Else
CurPage = 1
End If
objPds.CurrentPageIndex = CurPage – 1
lblCurrentPage.Text = “当前页:” + CurPage.ToString()
If (Not objPds.IsFirstPage) Then
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage – 1)
End If
If (Not objPds.IsLastPage) Then
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage + 1)
End If
Repeater1.DataSource = objPds
Repeater1.DataBind()
HTML—
<form name=”form1″ method=”POST” runat=”server”>
<div style=”padding:5px;background-color:#dedede”>
<asp:label ID=”lblCurrentPage” runat=”server”></asp:label></td>
<td> <asp:HyperLink id=”lnkPrev” runat=”server”>上一页</asp:HyperLink>
<asp:HyperLink id=”lnkNext” runat=”server”>下一页</asp:HyperLink>
</div>
<hr size=”1″ color=”#000099″/>
<asp:Repeater ID=”Repeater1″ runat=”server”>
<Itemtemplate>
<div style=”padding:5px;background-color:#dedede”>
<%# DataBinder.Eval(Container.DataItem, “Title”) %>
</div>
</Itemtemplate>
</asp:Repeater>
</form>