源代碼部分(.aspx.vb)
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在這裡放置使用者程式碼以初始化網頁 If Not IsPostBack Then pds.DataSource = Me.CreateDataSource pds.AllowPaging = True pds.PageSize = 4 intTotalRec = Me.CreateDataSource.Count pds.CurrentPageIndex = 0 'Response.Write("
") intTotalPage = pds.PageCount.ToString Me.DataList1.DataSource = pds Me.DataList1.DataBind() Me.showinfo() 'Session("pc") = "1" Else '含有Session的注釋代碼表示在頁面驅動了一個事件後 '會先執行page_load事件然後執行所對應的的事件. 'Session("pc") = Session("pc") + "2" 'Response.Write("
") pds.DataSource = Me.CreateDataSource pds.AllowPaging = True pds.PageSize = 4 intTotalRec = Me.CreateDataSource.Count 'Response.Write("
") intTotalPage = pds.PageCount.ToString End If End Sub
Public Function CreateDataSource() As DataView Dim dt As DataTable Dim dr As DataRow
dt = New DataTable dt.Columns.Add("Integer", GetType(Integer)) dt.Columns.Add("String", GetType(String))
Dim i As Integer For i = 0 To 5 dr = dt.NewRow dr.Item(0) = i dr.Item(1) = "item " & i.ToString dt.Rows.Add(dr) Next
CreateDataSource = dt.DefaultView End Function
Private Sub lbFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbFirst.Click 'Session("pc") = Session("pc") + "3" 'Response.Write("
")
pds.CurrentPageIndex = 0 Me.DataList1.DataSource = pds Me.DataList1.DataBind() Me.showinfo() End Sub
Private Sub lbLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbLast.Click pds.CurrentPageIndex = Me.intTotalPage - 1 Me.DataList1.DataSource = pds Me.DataList1.DataBind() Me.showinfo() End Sub
Private Sub lbPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbPrevious.Click If pds.CurrentPageIndex = 0 Then Else pds.CurrentPageIndex -= 1 End If Me.DataList1.DataSource = pds Me.DataList1.DataBind() Me.showinfo() End Sub
Private Sub lbNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbNext.Click If pds.CurrentPageIndex = pds.PageCount - 1 Then Else pds.CurrentPageIndex += 1 End If Me.DataList1.DataSource = pds Me.DataList1.DataBind() Me.showinfo() End Sub
Private Sub showinfo() Me.lInfo.Text = (pds.CurrentPageIndex + 1).ToString & "/" & Me.intTotalPage.ToString End Sub
Note:
需要給PagedDataSource賦一個數據源,同時還要設定允許分頁(AllowPaging)、每頁的大小(PageSize),這樣PagedDataSource對象就可以自動算出頁數(PageCount),然後就可以把這個PagedDataSource作為數據源賦於一個DataList對象,最後將DataList對象綁定。 
|