datagrid

Ana
09 de Febrero del 2004
Estoy trabajando con Visual Basuc .NET, ASP .NET, y en un web form estoy colocando un DataGrid, pero es mucha información la que tengo que mostrar, por lo que quiero usar la paginación. En las propiedades del DataGrid está la paginación, la marco, le indico como la quiero, pero cuando ejecuto en web form sólo muestra los primeros datos......
Espero que alguien me haya entendido y me pueda ayudar.
GRACIAS

Mikel
09 de Febrero del 2004
Hace tiempo yo tuve la misma pelea, pero haciendo lo que teoricamente hay que hacer tampoco conseguí que me funcionara. Posteriormente me pasaron codigo para un control personalizado de la paginacion.

Para ello debes de tener en el datagrid las siguientes las propiedades:

AllowCustomPaging = False
AllowPaging = True
PageSize = n (número de filas que deseas por pagina)

El codigo necesario es el siguiente:

Private sub CargarDataGrid()
...
instrucciones para el llenado del data grid
...
ComprobarBotones()
End sub

Private Sub DataGrid_PageIndexChanged()
dtgPartesTrabajo.CurrentPageIndex = e.NewPageIndex
CargarPartesTrabajo()
End Sub


Mikel
09 de Febrero del 2004
Continuo con la respuesta ... soy un zarpas y lo enviado sin querer.

Private sub DataGrid_PageIndexChanged()
DataGrid.CurrentPageIndex = e.NewPageIndex
CargarDataGrid()
End Sub

Private Sub cmdPrimero_Click()
DataGrid.CurrentPageIndex = 0
CargarDataGrid()
End Sub

Private Sub cmdAnterior_Click()
If DataGrid.CurrentPageIndex > 0 Then
DataGrid.CurrentPageIndex -= 1
CargarDataGrid()
End If
End Sub

Private Sub cmdSiguiente_Click()
If (DataGrid.CurrentPageIndex < (DataGrid.PageCount - 1)) Then
DataGrid.CurrentPageIndex += 1
CargarDataGrid()
End If
End Sub

Private Sub cmdUltimo_Click()
DataGrid.CurrentPageIndex = DataGrid.PageCount - 1
CargarDataGrid()
End Sub

Private Sub ComprobarMovimientos()
cmdPrimero.Visible = True
cmdAnterior.Visible = True
cmdSiguiente.Visible = True
cmdUltimo.Visible = True

If DataGrid.CurrentPageIndex = 0 Then
cmdPrimero.Visible = False
cmdAnterior.Visible = False
End If

If DataGrid.CurrentPageIndex = DataGrid.PageCount - 1 Then
cmdUltimo.Visible = False
cmdSiguiente.Visible = False
End If
End Sub


De esta manera controlas manualmente el movimiento entre paginas.

Se me ha olvidado indicarte que en el procedimiento CargarDataGrid debes indicarle en la propiedad DataGrid.VirtualItemCount el número de filas que contiene el DataGrid. Yo tambien suelo poner una etiqueta en la cual voy indicando en que página te encuentras (Pagina n de m). Esto lo actualizo en el procedimiento CargarDataGrid con la siguiente instruccion:

Label.Text = "Pagina " & DataGrid.CurrentPageIndex + 1 & " de " & DataGrid.PageCount

El procedimiento ComprobarMovimientos sirve para que cuando estes en la primera pagina no se vea el boton de ir a la primera o a la anterior pagina y para que cuando estes en la ultima no aparezcan los botoens para ir al útlimo o al siguiente.

Espero que te sirva mi ayuda y que hayas entendido la chapa que te he metido.

Saludos desde Donostia en Euskal-Herria.

Mikel