sorting in data grid run-time error: Cannot find table 0.

  • Thread starter Thread starter Matthew Louden
  • Start date Start date
M

Matthew Louden

I am trying to implement the sort event in data grid. I set the data grid's
AllowSorting property = True. I implement the following code that should be
the event will fire when the user click any of the columns in the table:

Private Sub dgReport1_SortCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles
dgReport1.SortCommand
Dim sortOrder As String = e.SortExpression.ToString()
Response.Write(sortOrder)
Dim ds As New DataSet
Dim dt As DataTable = ds.Tables(0)
dt.DefaultView.Sort = sortOrder
dgReport1.DataSource = ds.Tables(0).DefaultView
dgReport1.DataBind()
End Sub


When I click any of the columns in the table, it throw the following run
time error on line: Dim dt As DataTable = ds.Tables(0).

Run-time error
============
Cannot find table 0.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: Cannot find table 0.


I have no idea why table 0 has problem. Because I am able to get the table
as folows:

Dim dt As DataTable = ds.Tables(0)
dgReport1.DataSource = dt
dgReport1.DataBind()



Please advise! Thanks !!
 
Sure. But does the DataTable exist when you return to the form to sort it? I
doubt it. The DataTable is not persisted between invocations unless you
persist it. One approach is to save it to the Session state. When you return
on Postback, you'll need to rehydrate it.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
MVP, hRD
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
Back
Top