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

Paginacion

Estas en el tema de Paginacion en el foro de .NET en Foros del Web. Hola, como puedo mostrar en un datalist 6 registros en dos filas y tres columnas y si hay mas de 6 registros debo paginarlo. (en ...
  #1 (permalink)  
Antiguo 02/06/2009, 09:27
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Paginacion

Hola, como puedo mostrar en un datalist 6 registros en dos filas y tres columnas y si hay mas de 6 registros debo paginarlo. (en VB.Net)

La estructura masomenos asi

reg1 | reg 2 | reg3
reg4 | reg 5 | reg6

Prev | Next


Agradecere su ayuda.


Saludos
  #2 (permalink)  
Antiguo 03/06/2009, 15:14
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 4 meses
Puntos: 22
Respuesta: Paginacion

Estamos hablando de WinForms o ASP .Net???
  #3 (permalink)  
Antiguo 08/06/2009, 11:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Paginacion

Cita:
Iniciado por gedarufi Ver Mensaje
Estamos hablando de WinForms o ASP .Net???
en ASP.Net mi estimado gedarufi
  #4 (permalink)  
Antiguo 08/06/2009, 17:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Paginacion

Hola useraul, tengo el codigo, pero yo lo hice para un elemento repeater, no creo que tengas problemas para adaptarlo al datalist, puesto que comparten entre si muchas propiedades, pero si tienes problemas no dudes en preguntar.
Para explicarte un poco antes de poner el codigo, te digo que se utiliza un elemento PagedDataSource, para paginar los datos. Este elemento te permite definir de que tamaño quieres la paginación, no obstante te ire explicando el código segun lo ponga.
Código:
            Dim conexion As New OleDbConnection
            Dim comando As New OleDbCommand
            Dim adaptador As New OleDbDataAdapter
            Dim dataset1 As New DataSet
            Dim pageds As New PagedDataSource
            Dim j As Integer

            conexion.ConnectionString = "cadena de conexión
            conexion.Open()
            comando.CommandText = "consulta de seleccion sql"
            comando.Connection = conexion
            adaptador.SelectCommand = comando
            conexion.Close()

            'llenamos el dataset con los datos de la tabla
            adaptador.Fill(dataset1, "datos")
            
            'ahora viene el elemento que sirve para paginar
            pageds.DataSource = dsproductos.Tables("datos").DefaultView
            pageds.AllowPaging = True
            'definimos el numero de datos por pagina en este caso 10
            pageds.PageSize = 10

            'curpage sera el indice que identifique en que pagina estamos
            Dim curpage As Integer
            If Not IsNothing(Request.QueryString("Page")) Then
                curpage = Convert.ToInt32(Request.QueryString("Page"))
            Else
                curpage = 1
            End If

            pageds.CurrentPageIndex = curpage - 1
            lblCurrpage.Text = "Page: " + curpage.ToString()

            'pasamos el numero de la pagina  para que el datasource sepa en que pagina estas de ese modo te dira que datos mostrar
            If Not pageds.IsFirstPage Then
                lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + CStr(curpage - 1)
            End If

            If Not pageds.IsLastPage Then
                lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + CStr(curpage + 1)
            End If

            'finalmente asignamos el origen de datos y lo cargamos
            repeater1.DataSource = pageds
            repeater1.DataBind()
Como te he dicho antes use un elemento repeater, no deberia darte problemas el datalist. Mucha suerte con el proyecto

Un saludo.

Pinty
  #5 (permalink)  
Antiguo 09/06/2009, 08:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Paginacion

Muchas gracias Pinty. Lo probare.

Un abrazo. saludos
  #6 (permalink)  
Antiguo 11/06/2009, 11:46
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Paginacion

oe man Pinty, gracias por tu ayuda me salio muy bien.

un abrazo men
  #7 (permalink)  
Antiguo 11/06/2009, 17:00
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Paginacion

useraul me alegro mucho de que te haya salido bien, y no tienes que darme las gracias, para eso estamos para ayudarnos.

Un saludo

Pinty
  #8 (permalink)  
Antiguo 22/06/2009, 10:36
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Paginacion

Hola man, bueno una ves mas molestando, :P como haria para poder poner en mi paginacion numero de pagina como muestran los temas en esta pagina.

Ejemplo:

<< 1 2 3 >>
Agradesco tu apoyo men
  #9 (permalink)  
Antiguo 22/06/2009, 14:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Paginacion

Hola Useraul, pues la idea para lo que haces seria que en el link que marca el número de la página usases la funcion curpage.
Es decir en lugar de mostrar un unico número curpage.toString() seria mostrar dos, o cuatro segun lo que quieras marcar.
En el caso de dos seria curpage.toString()-1 y curpage.toString() +1, de este modo te mostraria el anterior y el posterior. Pero claro hay un problema, si empiezas desde la pagina 0 no existira el -1 ya que daria error. Esa es la idea
Voy a seguir mirando opciones por que el codigo que tengo ahora mismo probado funciona bien, pero no merece la pena el tiempo que tarda en ejecutarse. Si encuentro algo mejor lo pongo por aqui.
Siento mucho no haber podido ayudarte bien

Un saludo

Pinty
  #10 (permalink)  
Antiguo 22/06/2009, 15:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Paginacion

ok man gracias.

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 22:23.