Hi,
I am programming in ASP.net 2.0 VS 2005.
I am using PageDataSource class to page between pages in a list of Items
I am getting a runtime exception IndexOutOfRange upon calling DataList's DataBind method afterwith PageDataSource object.
Following is the code I am trying:
Code:
Dim objPds As PagedDataSource
Protected Sub Page_Load()
If Not Page.IsPostBack Then
ItemsGet()
End If
End Sub
Public Property CurrentPage() As Integer
Get
Dim o As Object = Me.ViewState("_CurrentPage")
If o Is Nothing Then
Return 0
Else
Return Convert.ToInt32(o)
End If
End Get
Set(ByVal value As Integer)
Me.ViewState("_CurrentPage") = value
End Set
End Property
Protected Sub lnkBtnCmdNext_Click()
CurrentPage = CurrentPage + 1
ItemsGet()
End Sub
Protected Sub lnkBtnCmdPrev_Click()
CurrentPage = CurrentPage - 1
ItemsGet()
End Sub
Protected Sub ItemsGet()
Dim Items As DataSet = New DataSet
objPds = New PagedDataSource
Dim da As New SqlDataAdapter("exec sp_View_Existing_Glossary", GetConnectionString)
da.Fill(Items)
objPds.DataSource = Items.Tables(0).DefaultView
objPds.AllowPaging = True
objPds.PageSize = 3
objPds.CurrentPageIndex = CurrentPage - 1
lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() & " of " & _
objPds.PageCount.ToString
lnkBtnCmdPrev.Enabled = Not objPds.IsFirstPage
lnkBtnCmdNext.Enabled = Not objPds.IsLastPage
DataList1.DataSource = objPds
DataList1.DataBind()
End Sub
The corresponding ASPX file contains
Code:
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
..........
</ItemTemplate>
</asp:DataList>
Please help. I get IndexOutofRange Exception upon Databind of DataList and PageDataSourceObject (indicated above in the code as
bold). What am I doing wrong?
The DataSet contains 4 rows of result data
I got the source code from an 4GuysFromRolla article. This article showed for DataRepeater and said it should not be different for DataList. Hence I used the same code to structure the Datalist
Thanks in Advance.
Regards
D