Foros del Web » Programación para mayores de 30 ;) » .NET »

Paginar un datagridview de forma inusual

Estas en el tema de Paginar un datagridview de forma inusual en el foro de .NET en Foros del Web. Hola a todos, hoy vengo con otro problema. La mayoria te dan una opcion para paginar en desktop que es con un combo que muestra ...
  #1 (permalink)  
Antiguo 07/06/2011, 17:00
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Paginar un datagridview de forma inusual

Hola a todos, hoy vengo con otro problema.

La mayoria te dan una opcion para paginar en desktop que es con un combo que muestra de 50 en 50 por ejemplo, conforme cambias de pagina, lo que yo necesito es que cuando lleguen al ultimo renglon del datagridview, me muestre los siguientes 50, y asi cada que llegue al ultimo datagridview pero solo cuando el usuario se mueva por el y no al crearse el nuevo renglon (esto por si hay forma de hacerlo con el evento cellenter, algo que ya intente y no me dejo).

No dispongo de tiempo para hacerlo de una forma complicada, en si la forma en que lleno el grid es a mano usando un datareader y por ejemplo necesitaria que la paginacion funcione.

Otra posible solucion que pueden darme es saber si el scroll del datagridview llego al final del datagridview (estoy buscando como hacerlo).

Ojala me respondan hoy mismo y sino cuando puedan.

Gracias y mil disculpas por mis exigencias.
  #2 (permalink)  
Antiguo 07/06/2011, 22:58
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Paginar un datagridview de forma inusual

Encontre una solucion que no se si cause problemas a largo plazo:

Usando el evento keyup del datagridview checo si el renglon seleccionado es el ultimo, de ser asi, realiza el while que mete los siguientes registros (actualmente es de 2 en 2 por falta de registros).

Este es el codigo:

If e.KeyValue = 40 Then
'DGArticulo.CurrentRow.Selected = True
If DGArticulo.CurrentRow.Index = DGArticulo.Rows.Count - 1 And DGArticulo.Rows.Count Mod 2 = 0 Then

_oArticulo = New Clase_Articulos
_oArticulo.Opc = 17
Dim datosarticulo As String()[/HTML]
ReDim datosarticulo(0)
datosarticulo(0) = DGArticulo.Item(0, DGArticulo.CurrentRow.Index).Value
_oArticulo.DatosArticulo = datosarticulo
Dim _oElem As Elemento
_oElem = _oArticulo
Dim Consulta As Visitor = New VisitanteConsulta()
_oElem.Accept(Consulta)
Lector = _oArticulo.Lector

While Lector.Read()

DGArticulo.Rows.Add(Lector("ar_id").ToString(), Lector("ar_codigoarticulo").ToString(), Lector("ar_nombre").ToString(), Lector("ar_descripcion").ToString())

'DGArticulo(0, i).Value = Lector("ar_id").ToString()
'DGArticulo(1, i).Value = Lector("ar_codigoarticulo").ToString()
'DGArticulo(2, i).Value = Lector("ar_nombre").ToString()
'DGArticulo(3, i).Value = Lector("ar_descripcion").ToString()

'ar_id.Items.Add(Lector("ar_id").ToString())

End While
Else

End If
End If

Solo tomen en cuenta la parte donde agrega los renglones.

Ahora encontre otro inconveniente y es al agregar un nuevo registro desde el programa. Debido a que al comienzo muestro los 2 primeros registros, si se crea un nuevo registro desde el programa se agrega el renglon correspondiente y por lo tanto ya no funciona el codigo del keypress. Estoy buscando una solucion a esto, si alguien tiene alguna idea me la dice, gracias.
  #3 (permalink)  
Antiguo 09/06/2011, 08:46
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Paginar un datagridview de forma inusual

El problema lo resolvi no mostrando el nuevo registro a menos que se esten mostrando todos los registros en el gridview, no veo otra forma de hacerlo puesto que si muestro todos al momento de agregar uno nuevo tardaria mucho en cargar y la idea de paginar es esa, mejorar el rendimiento del sistema.

Den por cerrado este tema, lo dejare asi por cuestiones de tiempo, tal vez en la version 2 de sistema mejore esto y otras cosillas que no estan muy bien programadas.

Etiquetas: datagridview, paginar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:44.