La carga de un DataList seria de la siguiente forma:
SqlConnection conn = new SqlConnection("Server=localhost;Database=PUBS;Uid=sa;Pwd=as");
SqlCommand cmd = new SqlCommand("Select * From authors", conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
DataList1.DataSource = ds;
DataList1.DataBind();
Ahora vamos a utilizar un control PagedDataSource para páginar los resultados. La idea es que al pulsar siguiente o anterior se pase por GET la página que le corresponde, en Request.QueryString["IDP"], este valor se lo asignaremos a la variable CurPage para saber en que página estamos.
El código es el siguiente:
SqlConnection conn = new SqlConnection("Server=localhost;Database=PUBS;Uid=sa;Pwd=as");
SqlCommand cmd = new SqlCommand("Select * From authors", conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
PagedDataSource objPds = new PagedDataSource();
Asignamos el ds donde tenemos los datos de la consulta al método datasource del objeto paginación
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 10;
int CurPage;
if (Request.QueryString["IDP"] != null)
CurPage = Convert.ToInt32(Request.QueryString["IDP"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
strPaginacion = "";
if (!objPds.IsFirstPage)
strPaginacion = "<< anterior";
if (objPds.PageCount > 0)
strPaginacion += "(pagina " + CurPage.ToString() + " de " + objPds.PageCount.ToString() + ")";
if (objPds.PageCount > 1)
if (!objPds.IsLastPage)
strPaginacion += "siguiente >>";
DataList1.DataSource = objPds;
DataList1.DataBind();
<%= GetPaginacion() %>
Os dejo dos ejemplos, uno con un datalist y otro con un repeater, como vereis son exactamente igual.
Enlaces relacionadas:
Código del artículo
Saludos
Alex
Añadir un comentarios:
jan 12/08/2018 06:30:09Hola |