Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2010, 03:58
jancos
 
Fecha de Ingreso: diciembre-2009
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 0
Paginar y ordenar un gridview

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