Hola a todos.
Tengo un problemilla a la hora de paginar y ordenar un gridview.
El tema es que cuando quiero mostrar el gridview ordenado de forma descendente, y quiero ir a otra página, pierde el orden. Es decir, me va a la página que le he pedido pero me vuelve a la ordenación incial que era ascendente.
Seguro que la solución es muy fácil, pero no la encuentro.
Gracias de antemano.
El código que utilizo es el siguiente:
Protected Sub ListadoClientes_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles ListadoClientes.PageIndexChanging
Me.ListadoClientes.PageIndex = e.NewPageIndex
Me.ListadoClientes.DataBind()
End Sub
Protected Sub ListadoClientes_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles ListadoClientes.Sorting
Dim sortExpression As String = e.SortExpression
If GridViewSortDirection = SortDirection.Ascending Then
GridViewSortDirection = SortDirection.Descending
SortGridView(sortExpression, "DESC")
Else
GridViewSortDirection = SortDirection.Ascending
SortGridView(sortExpression, "ASC")
End If
direccion = Me.ListadoClientes.SortDirection
End Sub
Private Sub SortGridView(ByVal sortExpression As String, ByVal direction As String)
Dim dv As New Data.DataView(dt)
dv.Sort = sortExpression + " " + direction
ListadoClientes.DataSource = dv
ListadoClientes.DataBind()
End Sub
Public Property GridViewSortDirection() As SortDirection
Get
If ViewState("sortDirection") Is Nothing Then
ViewState("sortDirection") = SortDirection.Ascending
End If
Return DirectCast(ViewState("sortDirection"), SortDirection)
End Get
Set(ByVal value As SortDirection)
ViewState("sortDirection") = value
End Set
End Property