rt

解决方案 »

  1.   

    可以参考 PagedDataSource 类,GridView 和 DataGrid 内容都是使用此类来进行分类的。
      

  2.   

    老兄,可以清楚一点吗?msdn上说得不是很清楚。。
      

  3.   

    这有一个小例子,可参考。vb.net下datalist分页 
    <%@ 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("db\upload.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=30
    '联接数据库
    myconn.open()
    '计算总共有多少记录 
     Dim MyComm as OleDbCommand  = new OleDbCommand("select count(*) as ID from data",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
       select case cmd
       case "next": 
    if CurrentPage<(PageCount-1) then CurrentPage=+1 
       case "prev": 
    if CurrentPage>0 then CurrentPage-=1 
       end select 
       ViewState("PageIndex") = CurrentPage
    ListBind()end sub
    sub listbind()
       Dim StartIndex as integer
       
       StartIndex = CurrentPage*PageSize
       Dim strSel as string  = "select * from data" 
       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>
        <td width="50%">
          <div align="right"><a href="upload.aspx" target="_blank">上传照片</a></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>
    <a href="detail.aspx?&id=<%# DataBinder.Eval(Container.DataItem, "ID") %>" target="_blank">
    <img border="0" src="viewpic.aspx?type=small&id=<%# DataBinder.Eval(Container.DataItem, "ID") %>" alt="编号:<%# DataBinder.Eval(Container.DataItem, "ID") %>
    介绍:<%# DataBinder.Eval(Container.DataItem, "PicComment")%>
    长度:<%# DataBinder.Eval(Container.DataItem, "picsize")%>K
    时间:<%# DataBinder.Eval(Container.DataItem, "uploadtime")%>
    分辨率:<%# DataBinder.Eval(Container.DataItem, "picrev")%>
    点击数:<%# DataBinder.Eval(Container.DataItem, "ClickNum")%>
      点击查看原图">
    </a>
    <br>
    <font color=#808080>- <%# DataBinder.Eval(Container.DataItem, "ID") %>  -</font>
    <br>
    <%# DataBinder.Eval(Container.DataItem, "PicComment") %>
    <br>
    <%# DataBinder.Eval(Container.DataItem, "Picsize") %>K</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_OnClick" runat="server" /> 
     </td>
        </tr>
      </table>
    </form></html>