Foros del Web » Programando para Internet » ASPX (.net) »

Error al querer poner paginación en los Datagrid

Estas en el tema de Error al querer poner paginación en los Datagrid en el foro de ASPX (.net) en Foros del Web. Quiero poner paginación en los datagird pero me da el siguiente error AllowCustomPaging debe ser true y VirtualItemCount se debe establecer para DataGrid con el ...
  #1 (permalink)  
Antiguo 15/07/2008, 01:36
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Error al querer poner paginación en los Datagrid

Quiero poner paginación en los datagird pero me da el siguiente error

AllowCustomPaging debe ser true y VirtualItemCount se debe establecer para DataGrid con el id. dnoticias si AllowPaging se establece como true y el origen de datos seleccionado no implementa ICollection.


alguna idea?
  #2 (permalink)  
Antiguo 15/07/2008, 09:08
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

eso debe ser porque estas colocando un datasource que no acepta eso como es el caso del datareader, asignale un dataset a ver que pasa.
  #3 (permalink)  
Antiguo 16/07/2008, 05:09
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

mira lo que tengo puesto es ...


If Not IsPostBack Then

Dim operarDb As New OperacionesDb
operarDb.conexion_abrir()



Dim lector As System.Data.OleDb.OleDbDataReader
Dim seleccion As String
seleccion = "select idnoticias, fechanoticia, titulo from noticia"

lector = operarDb.comando_leer(seleccion)

dnoticias.DataSource = lector
dnoticias.DataBind()

lector.Close()
operarDb.conexion_cerrar()



End If


el datagrid dnoticias esta paginado, y pongo el AllowCustomPaging a True y si que me va...pero no me salen las demas paginas!!

solo me sale la pagina primera y luego no me salen mas paginas!!!!
  #4 (permalink)  
Antiguo 16/07/2008, 06:38
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

Perdona me equivoque, el datareader esta perfecto, te falta asignar la propiedad al datagrid.



If Not IsPostBack Then

Dim operarDb As New OperacionesDb
operarDb.conexion_abrir()



Dim lector As System.Data.OleDb.OleDbDataReader
Dim seleccion As String
seleccion = "select idnoticias, fechanoticia, titulo from noticia"

lector = operarDb.comando_leer(seleccion)

'aca puse 200 pero vos fijate ok
dnoticias.VirtualItemCount = 200
dnoticias.DataSource = lector
dnoticias.DataBind()

lector.Close()
operarDb.conexion_cerrar()



End If
  #5 (permalink)  
Antiguo 16/07/2008, 07:28
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

A ver ya tengo la idea hecha y todo, solo me falta una cosa!!! que poner en el evento de cambio de pagina!!!

1. Cargar el datagrid desde un metodo

Private Sub Bind_Data(ByVal seleccion As String)

Dim DBConn As OleDbConnection
Dim DBCommand As OleDbDataAdapter
Dim DSPageData As New DataSet
DBConn = New OleDbConnection("...")

DBCommand = New OleDbDataAdapter(seleccion, DBConn)
DBCommand.Fill(DSPageData, "noticia")
dnoticias.VirtualItemCount = 50
dnoticias.DataSource = DSPageData.Tables("noticia").DefaultView
dnoticias.DataBind()

End Sub

2. Al cargar la pagina le llamo desde aquí

If Not IsPostBack Then

Bind_Data("select idnoticias, fechanoticia, titulo from noticia")

End If


3. Que coño tengo que meterle en este evento!!!!!

Private Sub dnoticias_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEvent Args) Handles dnoticias.PageIndexChanged

******que pongo aqui para que cuando cambie de pagina me salgan las siguientes filas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!


End Sub
  #6 (permalink)  
Antiguo 16/07/2008, 07:28
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

Ayuda!!!!!
  #7 (permalink)  
Antiguo 16/07/2008, 08:49
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

Tenes que poner en el punto 3:

dnoticias.CurrentPageIndex = e.NewPageIndex
Bind_Data("select idnoticias, fechanoticia, titulo from noticia")
  #8 (permalink)  
Antiguo 16/07/2008, 08:50
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

Fijate aca http://msdn.microsoft.com/en-us/libr...itemcount.aspx
  #9 (permalink)  
Antiguo 16/07/2008, 12:54
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

Pero si pongo esto...
Bind_Data("select idnoticias, fechanoticia, titulo from noticia")

al cambiar de numero de pagina seme vuelven a cargar las 5 primeras filas y NO las 5 siguentes filas

¿me entiendes?


gracias por todo
  #10 (permalink)  
Antiguo 16/07/2008, 17:38
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

eso es porque en tu pagina estas cargando nuevamente la grilla seguramente, fijate.
  #11 (permalink)  
Antiguo 17/07/2008, 03:56
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

y como lo puedo evistar que se me carque too el rato, al cargar la pagina hago esto

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


If Not IsPostBack Then

Bind_Data("select idnoticias, fechanoticia, titulo from noticia ORDER BY idnoticias DESC")

End If

End Sub
  #12 (permalink)  
Antiguo 17/07/2008, 14:19
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

hace una cosa, en tu procedimiento Bin_Data..... pasale por parametro el indice que queres en tu grilla tambien

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


If Not IsPostBack Then

Bind_Data("select idnoticias, fechanoticia, titulo from noticia ORDER BY idnoticias DESC",0)

End If
End Sub

Y cuando lo llamas de otro lado le pasa el indice correspondiente y listo.

Private Sub dnoticias_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEvent Args) Handles

Bind_Data("select idnoticias, fechanoticia, titulo from noticia ORDER BY idnoticias DESC", e.NewPageIndex)


End Sub

y en tu Evento Bin_Data solo le asignas el indice que te viene por parametro.

Suerte.
  #13 (permalink)  
Antiguo 17/07/2008, 15:02
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

me estoy volviendo realmente loco!!! porque si soluciono esto termino el proyecto de las pelotas!

mira el ultimo retoque este.

1. Cargar
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not IsPostBack Then

Bind_Data("select idnoticias, fechanoticia, titulo from noticia ORDER BY idnoticias DESC", 0)

End If


End Sub

2. Databind para cargar

Private Sub Bind_Data(ByVal seleccion As String, ByVal numeropag As Integer)

Dim DBConn As OleDbConnection
Dim DBCommand As OleDbDataAdapter
Dim DSPageData As New DataSet
DBConn = New OleDbConnection("...")

dnoticias.CurrentPageIndex = numeropag
DBCommand = New OleDbDataAdapter(seleccion, DBConn)
DBCommand.Fill(DSPageData, "noticia")
dnoticias.VirtualItemCount = 50
dnoticias.DataSource = DSPageData.Tables("noticia").DefaultView
dnoticias.DataBind()




End Sub

3. al cambiar de pagina

Private Sub dnoticias_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEvent Args) Handles dnoticias.PageIndexChanged


Bind_Data("select idnoticias, fechanoticia, titulo from noticia ORDER BY idnoticias DESC", e.NewPageIndex)


End Sub


pero me sigue pasando lo mismo, cambio de pagina y sigue saliendo la misma busqueda!!!

porque es tan dificil dios!! porque!!!

gracias mdavila por todo, te lo agradezco de corazon porque esto me mata!


un saludo
  #14 (permalink)  
Antiguo 17/07/2008, 17:25
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

pone el AllowCustomPaging=False porque en un principio fue tu pregunta pero no entiendo la razon de que lo tengas en True.
Elimina el dnoticias.VirtualItemCount = 50

Proba y contame.
  #15 (permalink)  
Antiguo 18/07/2008, 06:08
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Error al querer poner paginación en los Datagrid

Eres un genio!!!

Te quiero!!

Mil gracias!!
  #16 (permalink)  
Antiguo 20/07/2008, 14:43
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Error al querer poner paginación en los Datagrid

De nada, un placer...

Saludos.
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 13:47.