martes, 27 de abril de 2010

Páginación de GridView en ASP.net


Un problema muy común que he visto en foros es la páginación en el gridview, solución según algunos es:

Protected Sub GridView2_PageIndexChanging(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView2.PageIndexChanging
Me.GridView2.PageIndex = e.NewPageIndex
GridView2.DataBind()
End Sub


El código reliza la páginación pero tendrás que presionar 2 veces sobre el número de la página a la que deseas ir.

Una solución que he encontrado es volver a carga el contenido del GridView

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
Me.GridView1.PageIndex = e.NewPageIndex
Dim dt As New DataTable()
Dim cnn As New SqlConnection(Session("BASE"))
Dim strQuery As String = "select " & _
" campo1,campo2,campo3 " & _
" from TABLE Where campo1 = '" & Session("var_campo1") & "' order by campo2 DESC"
Dim cmd As New SqlCommand(strQuery)
Dim sda As New SqlDataAdapter()
cmd.CommandType = CommandType.Text
cmd.Connection = cnn
Try
Cnn.Open()
sda.SelectCommand = cmd
sda.Fill(dt)
GridView1.DataSource = dt
GridView1.DataBind()
Catch ex As Exception
Response.Write(ex.Message)
Finally
Cnn.Close()
sda.Dispose()
Cnn.Dispose()
End Try
End Sub

Comparte