Paginazione di un documento XML con ASP.NET
Articolo scritto da Luca Ruggiero
Pagina 1 di 2
Pagina 1 di 2
Il .NET Framework mette a disposizione validi strumenti per la gestione dei documenti XML, sia attraverso classi native che attraverso classi messe a disposizione da ADO.NET.
In questo articolo esaminiamo un esempio di paginazione di un documento XML con ASP.NET, utilizzando un Repeater per stampare a video i dati, un DataSet per leggeri e la classe PagedDataSource per eseguire la paginazione dei dati.
(L'articolo continua più sotto...)
');
Lavoreremo nel file paginazione.aspx che, una volta espletate tutte le operazioni, avrà il seguente aspetto:

Creiamo il documento XML che conterrà i dati, ovvero il file persone.xml che avrà la seguente struttura:
<?xml version="1.0" encoding="ISO-8859-1"?>
<persone>
<persona>
<nome>Massimiliano</nome>
<cognome>Bossi</cognome>
</persona>
<persona>
<nome>Luca</nome>
<cognome>Ruggiero</cognome>
</persona>
<persona>
<nome>Claudio</nome>
<cognome>Garau</cognome>
</persona>
<persona>
<nome>Gennaro</nome>
<cognome>Veneroso</cognome>
</persona>
<persona>
<nome>Maria</nome>
<cognome>Bonora</cognome>
</persona>
</persone>
Vediamo adesso il codice HTML che sarà contenuto nel corpo della pagina Web:
<form runat="server">
<asp:repeater id="risultati" runat="server">
<itemtemplate>
<p>
<%#Container.DataItem("nome")%>
<%#Container.DataItem("cognome")%>
</p>
</itemtemplate>
</asp:repeater>
<p><b><asp:literal id="pagina" runat="server" Text="1" /></b></p>
<p>
<asp:hyperlink id="indietro" runat="server" Text="Indietro" /> |
<asp:hyperlink id="avanti" runat="server" Text="Avanti" />
</p>
</form>
Costruiamo il Repeater in cui stamperemo i dati, quindi un elemento testuale lato server in cui stampare pagina corrente e numero totali di pagine ed i link (sempre lato server) per spostarsi tra le pagine.
Al fine di rendere più gradevole l'output finale, applichiamo alla pagina un pizzico di CSS:
<style type="text/css">
body
{
background: #FFFFFF;
color: #000000;
margin: 10px 10px 10px 10px;
}
p
{
font-size: 13px;
font-family: verdana;
}
a
{
color: #0000FF;
text-decoration: none;
}
a:hover
{
color: #FF0000;
text-decoration: none;
}
a.nolink
{
color: #AAAAAA;
}
</style>
Notiamo la classe CSS "nolink" che richiameremo via codice ASP.NET per contrassegnare come "non cliccabile" i link "indietro" ed "avanti", qualora si tratti della prima o dell'ultima pagina di dati.







