Tema: Paginacion
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/06/2009, 17:14
Pinty
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 3 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