Hi.
I have a Gridview thats is working just fine, but when i click the sort header link, nothing happens !?? it will not sort the data by Desc or Asc
Can someone help...
Main grid_view code
My Code_Behind
I have a Gridview thats is working just fine, but when i click the sort header link, nothing happens !?? it will not sort the data by Desc or Asc
Can someone help...
Main grid_view code
VB.NET:
<asp:GridView ID="MySource" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="email_id" AllowPaging="True" emptydatatext="Ingen Data tilgængelig." allowsorting="true" EnableViewState="False" OnSorting="MySource_Sorting" onRowDataBound="myGridView_RowDataBound">
My Code_Behind
VB.NET:
Imports System.IO
Imports System.Data
Imports System.Data.OleDb
Partial Class _default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack() Then
ViewState("sortOrder") = ""
bindGridView("", "")
End If
End Sub
Public Sub bindGridView(sortExp As String, sortDir As String)
'Get data from DB using DataSet
Using connection As OleDbConnection = New OleDbConnection(ConfigurationManager.ConnectionStrings("MyConnStr").ConnectionString)
Dim sql As String = "SELECT * FROM email_list"
Using adapter As OleDbDataAdapter = New OleDbDataAdapter(sql, connection)
Dim ds As New DataSet()
adapter.Fill(ds)
Dim myDataView As New DataView()
myDataView = ds.Tables(0).DefaultView
If sortExp <> String.Empty Then
myDataView.Sort = String.Format("{0} {1}", sortExp, sortDir)
End If
MySource.DataSource = ds
MySource.DataBind()
End Using
End Using
End Sub
Protected Sub MySource_Sorting(sender As Object, e As GridViewSortEventArgs)
bindGridView(e.SortExpression, sortOrder)
End Sub
Public Property sortOrder() As String
Get
If ViewState("sortOrder").ToString() = "desc" Then
ViewState("sortOrder") = "asc"
Else
ViewState("sortOrder") = "desc"
End If
Return ViewState("sortOrder").ToString()
End Get
Set(value As String)
ViewState("sortOrder") = value
End Set
End Property
Public Sub myGridView_RowDataBound(ByVal sender As Object, e As GridViewRowEventArgs)
'*** EmailID ***'
Dim lblEmailID As Label = CType(e.Row.FindControl("lblEmailID"), Label)
If Not IsNothing(lblEmailID) Then
lblEmailID.Text = e.Row.DataItem("email_id")
End If
'*** Name ***'
Dim lblName As Label = CType(e.Row.FindControl("lblName"), Label)
If Not IsNothing(lblName) Then
lblName.Text = e.Row.DataItem("email_name")
End If
'*** Gen ***'
Dim lblGen As Label = CType(e.Row.FindControl("lblGen"), Label)
If Not IsNothing(lblGen) Then
lblGen.Text = e.Row.DataItem("email_gen")
End If
'*** Old ***'
Dim lblOld As Label = CType(e.Row.FindControl("lblOld"), Label)
If Not IsNothing(lblOld) Then
lblOld.Text = e.Row.DataItem("email_old")
End If
'*** Email ***'
Dim lblEmail As Label = CType(e.Row.FindControl("lblEmail"), Label)
If Not IsNothing(lblEmail) Then
lblEmail.Text = e.Row.DataItem("email_adr")
End If
End Sub
End Class