Try the following example:
Code:
Public Property PageNumber() As Integer
Get
If ViewState("PageNumber") IsNot Nothing Then
Return Convert.ToInt32(ViewState("PageNumber"))
Else
Return 0
End If
End Get
Set
ViewState("PageNumber") = value
End Set
End Property
Protected Overloads Overrides Sub OnInit(ByVal e As EventArgs)
MyBase.OnInit(e)
AddHandler rptPages.ItemCommand, AddressOf rptPages_ItemCommand
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not Page.IsPostBack Then
LoadData()
End If
End Sub
Private Sub LoadData()
Dim cn As New SqlConnection("your connection goes" & Chr(13) & "")
here
");" & Chr(13) & ""
cn.Open()
Dim da As New SqlDataAdapter("your query goes" & Chr(13) & "")
here
", cn);" & Chr(13) & ""
Dim dt As New DataTable()
da.Fill(dt)
cn.Close()
Dim pgitems As New PagedDataSource()
Dim dv As New DataView(dt)
pgitems.DataSource = dv
pgitems.AllowPaging = True
pgitems.PageSize = 25
pgitems.CurrentPageIndex = PageNumber
If pgitems.PageCount > 1 Then
rptPages.Visible = True
Dim pages As New ArrayList()
For i As Integer = 0 To pgitems.PageCount - 1
pages.Add((i + 1).ToString())
Next
rptPages.DataSource = pages
rptPages.DataBind()
Else
rptPages.Visible = False
End If
rptItems.DataSource = pgitems
rptItems.DataBind()
End Sub
Private Sub rptPages_ItemCommand(ByVal source As Object, ByVal e As RepeaterCommandEventArgs)
PageNumber = Convert.ToInt32(e.CommandArgument) - 1
LoadData()
End Sub
Code:
<asp:Repeater ID="rptPages" Runat="server">
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" border="0">
<tr class="text">
<td><b>Page:</b> </td>
<td>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="btnPage"
CommandName="Page"
CommandArgument="<%#
Container.DataItem %>"
CssClass="text"
Runat="server"><%# Container.DataItem %>
</asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Repeater ID="rptItems" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# Eval("pkItemID") %>: <%# Eval("Description") %></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
Your example uses a DataSet, which should be used if you are filling it with more than one table. Otherwise, it is overkill. The above example uses a DataTable.
Bookmarks