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>Per approfondimenti si veda:
#445 - La paginazione manuale con il DataSet di ADO.NET ed un Repeater
http://www.aspitalia.com/liste/usag/script.aspx?ID=445
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


