Nos conectamos con una base de datos de Microsoft Access y, por código,
creamos un DataGrid. Aunque el DataGrid es un control muy potente
que nos provee de sus propios botones de navegación integrados, puede haber
ocasiones en que deseemos generar nuestros botones personalizados y actuar
de determinada manera ante eventos como el click del botón. En este caso
hay que generar también los métodos de navegación para controlar esos
eventos del botón. Nos moveremos por las distintas páginas del DataGrid
modificando la propiedad CurrentPageIndex por código.
El código es sencillo, primero se crean los botones en el formulario
Web, definiendo qué método se ejecuta al pulsar en el botón:
<asp:Button
id="btUno"
onclick="btUno_click"
runat="server"
Text="Primera página"></asp:Button>
<asp:Button id="btNext"
onclick="btNext_click"
runat="server"
Text="Página siguiente"></asp:Button>
<asp:Button id="btPrev"
onclick="btPrev_click"
runat="server"
Text="Página anterior"></asp:Button>
<asp:Button id="btFin"
onclick="btFin_click"
runat="server"
Text="Última página"></asp:Button>
Después se desarrolla el método
adecuado en el código Visual Basic, configurando la propiedad CurrentPageIndex:
'Al pulsar
el botón "Inicio", el índice de la página del DataGrid es 0
Sub btUno_click (obj as
Object, e as EventArgs)
dgDatos.CurrentPageIndex = 0
dgDatos.DataBind()
End Sub
'Al pulsar
el botón "Final" el índice de la página del DataGrid es 56
Sub btFin_click (obj as
Object, e as EventArgs)
'dgDatos.CurrentPageIndex = 55
dgDatos.CurrentPageIndex = dgDatos.PageCount - 1
dgDatos.DataBind()
End Sub
'Al pulsar el botón "Siguiente" el índice de la página
del DataGrid aumenta en 1
Sub btNext_click (obj as
Object, e as EventArgs)
'Si no estamos en la última página
If dgDatos.CurrentPageIndex < (dgDatos.PageCount
- 1) Then
dgDatos.CurrentPageIndex += 1
dgDatos.DataBind()
End If
End Sub
'Al pulsar el botón "Anterior" el índice de la página
del DataGrid disminuye en 1
Sub btPrev_click (obj as
Object, e as EventArgs)
'Si no estamos en la primera página
If dgDatos.CurrentPageIndex > 0
Then
dgDatos.CurrentPageIndex -= 1
dgDatos.DataBind()
End If
End Sub
Para terminar, cada vez que pulsemos en un botón de navegación ha de cambiar la página mostrada, se hace igualando el índice de la página del DataGrid con el nuevo índice originado por la pulsación del botón:
'Al pulsar
en los botones de navegación, cambia el índice de la página mostrada
Sub dgDatos_IndexChanged(ByVal
obj As Object, ByVal
e As DataGridPageChangedEventArgs)
dgDatos.CurrentPageIndex = e.NewPageIndex
dgDatos.DataBind()
End Sub
La página
aspx contiene el código HTML y Asp.NET y un archivo externo
contiene el código Visual Basic.