Nello script #445 si è visto come effettuare la paginazione con web control che non permettono questa possibilità come il Datalist. In quell'esempio viene utilizzato il metodo "Fill" del DataAdapter specificando anche il range dei dati da inserire nei webcontrol. Possiamo utilizzare anche un'altra soluzione grazie alla classe PagedDataSource presente nel namespace System.Web.UI.WebControls.
Possiamo utilizzare questa classe come mezzo intermedio tra la fonte dei dati e il web control per la visualizzazione di essi e per effettuare la paginazione.
Ecco un esempio dell'utilizzo di questa classe con un Repeater:
<script runat="server" Language="VB"> Sub Page_Load() ' Prendo il numero di pagina dalla collection QueryString Dim numero as integer=1 if not Request.QueryString("pagina") is nothing then numero=Convert.ToInt32(Request.QueryString("pagina")) end if ' creo una lista per il repeater Dim lista as new ArrayList for i as integer=1 to 100 lista.Add("articolo "+i.ToString()) next ' Inserisco l'arraylist nel pageddatasource Dim paginazione as new PagedDataSource paginazione.DataSource=lista paginazione.AllowPaging=true paginazione.PageSize=10 paginazione.CurrentPageIndex=numero-1 ' Modifico i link per cambiare pagina pagina.InnerText=numero.ToString() if not paginazione.IsFirstPage then prima.Href="PagedDataSource.aspx?pagina="+(numero-1).ToString() end if if not paginazione.IsLastPage then dopo.Href="PagedDataSource.aspx?pagina="+(numero+1).ToString() end if ' Visualizzo i dati elenco.DataSource=paginazione elenco.DataBind() End Sub </script><form runat="server"> <p align="center"> <a id="prima" runat="server"><</a> <span id="pagina" runat="server">1</span> <a id="dopo" runat="server">></a></p> <asp:repeater id="elenco" runat="server"> <headertemplate> <table border="1" align="center"> </headertemplate> <footertemplate> </table> </footertemplate> <itemtemplate> <tr><td><%# Container.DataItem %></td></tr> </itemtemplate> </asp:repeater> </form>
Approfondimenti
#445 - La paginazione manuale con il DataSet di ADO.NET ed un Repeater
https://www.aspitalia.com/liste/usag/script.aspx?ID=445
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.