sorted, i stored the field and sort order in hidden fields called lastcol and lastorder.

VB Code:
  1. Function pulldata()
  2.         Dim strChnl As String = Trim(lstChnl.SelectedItem.Value)
  3.         Dim dsOne As New System.data.DataSet
  4.         da.Fill(dsOne, "dtOne")
  5.         Dim dvOne As New DataView(dsOne.Tables("dtone"))
  6.         dvOne.RowFilter = "CHNL_ID ='" & strChnl & "'"
  7.         dvOne.Sort = lastCol.Value + " " + lastOrder.Value
  8.         dgOne.DataSource = dvOne
  9.         dgOne.DataBind()
  10.         Label1.Text = sortExpression
  11.     End Function
  12.     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  13.         If Not Page.IsPostBack Then
  14.             Dim cmdChnl As New System.Data.SqlClient.SqlCommand _
  15.             ("select top 500 chnl_id from olm_003_all group by chnl_id order by chnl_id", sqlOne)
  16.             Dim drchnl As System.Data.SqlClient.SqlDataReader
  17.             sqlOne.Open()
  18.             drchnl = cmdChnl.ExecuteReader()
  19.             lstChnl.DataSource = drchnl
  20.             lstChnl.DataTextField = "chnl_ID"
  21.             lstChnl.DataBind()
  22.             drchnl.Close()
  23.             sqlOne.Close()
  24.         Else
  25.         End If
  26.     End Sub
  27.     Private Sub lstChnl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstChnl.SelectedIndexChanged
  28.         pulldata()
  29.     End Sub
  30.     Private Sub dgOne_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles dgOne.PageIndexChanged
  31.         dgOne.CurrentPageIndex = e.NewPageIndex
  32.         Label1.Text = e.NewPageIndex
  33.         pulldata()
  34.     End Sub
  35.     Public Sub dgOne_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dgOne.SortCommand
  36.         Dim sortOrder = "Asc"
  37.         If (e.SortExpression.ToString() = lastCol.Value) AndAlso (sortOrder = lastOrder.Value) Then
  38.                 sortOrder = "Desc"
  39.             End If
  40.         lastCol.Value = e.SortExpression.ToString()
  41.         lastOrder.Value = sortOrder
  42.         pulldata()
  43.     End Sub
  44. End Class