Gridview sorting event - Gridview Datasource always Null .. why???

J

jobs

The Grid displays with multiple rows. I select a column to sort of a
particular field and the below event is fired, but DataTable is Null so
code is skipped.


The GridView:

<asp:GridView ID="ChargeGridView" runat="server"
AutoGenerateColumns="False" DataKeyNames="RouteCode"
Width="700px" SkinID="GridView"
AllowPaging="True" AllowSorting="true"
OnSorting="ChargeGridView_Sorting" ShowFooter="true"
PagerSettings-Mode="NumericFirstLast">


Protected Sub ChargeGridView_Sorting(ByVal sender As Object, ByVal e
As GridViewSortEventArgs)
Dim dataTable As DataTable = CType(ChargeGridView.DataSource,
DataTable)
If Not (dataTable Is Nothing) Then '****** (THIS IS ALWAYS
FALSE) ****
Dim dataView As DataView = New DataView(dataTable)
dataView.Sort = e.SortExpression + " " + e.SortDirection
Response.Write(e.SortExpression + " " + e.SortDirection)
ChargeGridView.DataSource = dataView
ChargeGridView.DataBind()
End If
End Sub

Thanks.
 
P

Phil H

jobs said:
The Grid displays with multiple rows. I select a column to sort of a
particular field and the below event is fired, but DataTable is Null so
code is skipped.


The GridView:

<asp:GridView ID="ChargeGridView" runat="server"
AutoGenerateColumns="False" DataKeyNames="RouteCode"
Width="700px" SkinID="GridView"
AllowPaging="True" AllowSorting="true"
OnSorting="ChargeGridView_Sorting" ShowFooter="true"
PagerSettings-Mode="NumericFirstLast">


Protected Sub ChargeGridView_Sorting(ByVal sender As Object, ByVal e
As GridViewSortEventArgs)
If Not (dataTable Is Nothing) Then '****** (THIS IS ALWAYS
FALSE) ****
Dim dataView As DataView = New DataView(dataTable)
dataView.Sort = e.SortExpression + " " + e.SortDirection
Response.Write(e.SortExpression + " " + e.SortDirection)
ChargeGridView.DataSource = dataView
ChargeGridView.DataBind()
End If
End Sub

Thanks.

Hi

The first thing I would question is this line:
Dim dataTable As DataTable = CType(ChargeGridView.DataSource,
DataTable)

I notice you set the DataSource property to something substantial
further down. But what value or type of object will
ChargeGridView.DataSource be in the line I quote? Does it exist at that
point?

I'm afraid I'm also moved to comment on your coding style. Remember VB
is not case sensitive. Therefore dataTable and DataTable are treated as
the same. Not a good idea to use type identifiers as variable names.

Phil Hall
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,152
Members
46,698
Latest member
LydiaHalle

Latest Threads

Top