日期:2014-05-20  浏览次数:20441 次

Repeater控件的分页?
关于Repeater控件的分页,网上有很多,但都是在页面加载的时候进行分页,如下例:
 
<%@   Page   Language= "C# "   %>
<%@   import   namespace= "System.Data "   %>
<%@   import   namespace= "System.Data.OleDb "   %>
<script   language= "C# "   runat= "server ">
public   void   Page_Load(Object   src,EventArgs   e)   {
    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();
}
</script>
<html>
<head>
<title> Repeater控件分页的例子 </title>
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 ">
<style>
    P,TD,DIV,SPAN   {font-size:9pt}
</style>
</head>
<body>
<form   name= "form1 "   method= "POST "   runat= "server ">
<div   style= "padding:5px;background-color:#dedede ">
<asp:label   ID= "lblCurrentPage "   runat= "server "> </asp:label> </td>
    <td> &nbsp; <asp:HyperLink   id= "lnkPrev "   runat= "server "> 上一页 </asp:HyperLink>
    <asp:HyperLink   id= "lnkNext "   runat= "server "> 下一页 </asp:HyperLink> &nbsp;
</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>
</body>
</html>

在实际应用中,都是基于某一事件(比如查询)的,如果将上例子改写为基于某一查询事件的Repeater分页?