Simple Paging in Repeater and DataList Controls
http://www.mastercsharp.com/article.aspx?ArticleID=76&&TopicID=2

解决方案 »

  1.   

    使用自定义分页方法,具体参考aspcn分页写法。
    其实microsoft.com也提供分页写法。
    http://expert.csdn.net/Expert/TopicView1.asp?id=961716
      

  2.   

    新建临时dataset或dataview手动分批读取
    读完一批绑定
    ……
      

  3.   

    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %> <script language="VB" runat="server">
    Dim connstr as String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("dbook.mdb")&" "
    Dim myconn As OleDbConnection = New OleDbConnection(connstr)
    Dim Pagesize,Pagecount,RecordNum,CurrentPage as integerPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) 
         
    '每页显示的个数
    Pagesize=1
    '联接数据库
    myconn.open()
    '计算总共有多少记录 
     Dim MyComm as OleDbCommand  = new OleDbCommand("select count(*) as ID from dbook",myconn)
     Dim dr as OleDbDataReader = MyComm.ExecuteReader()
     Dim intCount as integer
     if dr.Read() then 
        intCount =dr("ID")
     else 
      intCount = 0
     end if
     dr.Close()
     myconn.close()
     
     lblRecordCount.Text =intcount
     RecordNum=intcount
    '计算总共有多少页 
       
       if recordnum mod pagesize=0 then
       PageCount = RecordNum\PageSize 
       else
       PageCount = RecordNum\PageSize +1
       end if
    '    response.write(pagecount)
       ViewState("PageCount") = PageCountIf Not IsPostBack then
    CurrentPage = 0
    ViewState("PageIndex") = 0
    ListBind()
    end if End SubSub Page_OnClick(sender As Object, e As CommandEventArgs)
       CurrentPage = ViewState("PageIndex")
       PageCount = ViewState("PageCount") 
       Dim  cmd as string = e.CommandName
    CurrentPage-=1 
       ViewState("PageIndex") = CurrentPage
    ListBind()end sub
    Sub Page_OnClick1(sender As Object, e As CommandEventArgs)
       CurrentPage = ViewState("PageIndex")
       PageCount = ViewState("PageCount") 
    Dim  cmd as string = e.CommandName
    CurrentPage=+1 
    ViewState("PageIndex") = CurrentPage
    ListBind()end subsub listbind()
       Dim StartIndex as integer
       
       StartIndex = ViewState("PageIndex")*PageSize
       Dim strSel as string  = "select * from dbook" 
       Dim ds as DataSet = new DataSet()
       Dim MyAdapter as OleDbDataAdapter = new OleDbDataAdapter(strSel,myconn) 
       MyAdapter.Fill(ds,StartIndex,PageSize,"Result")DataList1.DataSource = ds.Tables("result").DefaultView
        DataList1.RepeatDirection = RepeatDirection.Horizontal
    DataList1.DataBind() lbnNextPage.Enabled = true 
    lbnPrevPage.Enabled = true
       if(CurrentPage=(PageCount-1)) then lbnNextPage.Enabled = false
       if(CurrentPage=0) then lbnPrevPage.Enabled = falseend sub</script>
    <html>
    <table border=0 width="100%" cellspacing=0 cellpadding=0 align="center" style=Font-Size:9pt>
      <tr> 
        <td width="50%"> 
          <div align="left">共有照片<asp:Label id="lblRecordCount" runat="server" />张</div>
        </td>
        </tr>
    </table>
    <asp:DataList id="DataList1" runat="server"
                width="100%"
    align="center"
    BorderColor="black"
                CellPadding="3"
                Font-Size="9pt"
    RepeatColumns=6
    Border=1
    >
    <ItemStyle HorizontalAlign="Center" width="16%" ></ItemStyle>
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "ID") %>
    </a>
    <br/>
    <font color=#808080>- <%# DataBinder.Eval(Container.DataItem, "ID") %>  -</font>
    <br/>
    </ItemTemplate>
    </ASP:Datalist>
    <form runat=server >
     <table width="100%" border="0" align="center" style=Font-Size:9pt>
        <tr> 
          
          <td align=center> 
    <asp:LinkButton id="lbnPrevPage" Text="上一页" CommandName="prev" OnCommand="Page_OnClick" runat="server" /> 
    <asp:LinkButton id="lbnNextPage" Text="下一页" CommandName="next" OnCommand="Page_OnClick1" runat="server" /> 
     </td>
        </tr>
      </table>
    </form></html>
      

  4.   

    everybody,especially saucer(思归, MS .NET MVP),i got it,thank you very much.