Spostamento tra le pagine in un controllo server Web GridView
Aggiornamento: novembre 2007
Nel controllo GridView ASP.NET è incorporato il supporto per consentire agli utenti di spostarsi tra i record uno alla volta. È possibile utilizzare l'interfaccia utente predefinita per lo spostamento tra le pagine o crearne una personalizzata.
Funzionamento dello spostamento tra le pagine nel controllo GridView
Il controllo GridView supporta lo spostamento tra le pagine degli elementi presenti nella relativa origine dati. Per attivare lo spostamento tra le pagine, è possibile impostare la proprietà AllowPaging su true. Lo spostamento tra le pagine è supportato dal controllo GridView in uno dei seguenti modi:
Se il controllo GridView è associato a un controllo origine dati in grado di restituire una sola pagina di dati quando richiesto, il controllo GridView sfrutterà direttamente tale funzionalità. Il numero di righe richiesto può variare a seconda del numero di righe per pagina specificato dalla proprietà PageSize e se l'origine dati supporta l'ottenimento del conteggio totale delle righe.
Nota: Tra i controlli origine dati inclusi in .NET Framework, soltanto ObjectDataSource supporta la restituzione di una sola pagina di dati.
Nota: Se si sta creando un'origine dati (ad esempio l'implementazione di un metodo SelectCountMethod nell'oggetto di origine per il controllo ObjectDataSource), è consigliabile che l'origine dati restituisca il conteggio totale delle righe quando fornisce le pagine di dati. Ciò contribuisce a ridurre il numero di record che il controllo GridView deve richiedere per recuperare una pagina di dati. Se il conteggio totale delle righe è fornito dall'oggetto dei dati di origine, il controllo GridView richiederà una sola pagina di righe alla volta. Se il conteggio totale delle righe non viene fornito, il controllo GridView deve richiedere tutte le righe dall'origine dati (a partire dalla riga che rappresenta la pagina di dati richiesta) e ignorare tutte le righe ad eccezione della riga visualizzata.
Se è associato a un controllo origine dati che non supporta direttamente la funzionalità per lo spostamento tra le pagine, oppure se è associato a una struttura di dati nel codice tramite la proprietà DataSource, il controllo GridView otterrà tutti i record dall'origine dati e visualizzerà solo quelli relativi alla pagina corrente, ignorando gli altri. Questo comportamento è supportato solo se l'origine dati del controllo GridView restituisce un insieme che implementa l'interfaccia ICollection, inclusi i DataSet.
Nota: Se l'origine dati non supporta direttamente lo spostamento tra le pagine né implementa l'interfaccia ICollection, il controllo GridView non potrà consentire lo spostamento tra le pagine. Se, ad esempio, si utilizza un controllo SqlDataSource con la proprietà DataSourceMode impostata su DataReader, il controllo GridView non potrà implementare lo spostamento tra le pagine.
Personalizzazione delle impostazioni e dell'interfaccia utente per lo spostamento tra le pagine
L'interfaccia utente per lo spostamento tra le pagine del controllo GridView può essere personalizzata in diversi modi. È possibile impostare la dimensione della pagina, ovvero il numero di elementi da visualizzare contemporaneamente, mediante la proprietà PageSize, nonché impostare la pagina corrente del controllo GridView mediante la proprietà PageIndex. Per una maggiore personalizzazione, è inoltre possibile utilizzare la proprietà PagerSettings oppure fornire un modello per lo spostamento tra le pagine.
Modalità di spostamento tra le pagine
La proprietà PagerSettings consente di personalizzare l'aspetto dell'interfaccia utente per lo spostamento tra le pagine generata automaticamente dal controllo GridView quando la proprietà AllowPaging viene impostata su true. Il controllo GridView può visualizzare sia controlli di direzione, che consentono agli utenti di spostarsi avanti e indietro tra le pagine, sia controlli numerici, che consentono di passare a una pagina specifica.
La proprietà PagerSettings del controllo GridView è impostata su una classe PagerSettings. È possibile personalizzare la modalità di spostamento tra le pagine impostando la proprietà Mode del controllo GridView. La modalità dell'interfaccia utente per lo spostamento tra le pagine può, ad esempio, essere personalizzata come illustrato di seguito:
GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast
Di seguito sono elencate le modalità disponibili:
Aspetto dei controlli per lo spostamento tra le pagine
Il controllo GridView dispone di numerose proprietà che consentono di personalizzare il testo e le immagini per diverse modalità di spostamento tra le pagine. Se ad esempio si desidera consentire lo spostamento mediante i pulsanti di direzione, ma personalizzando il testo visualizzato, è possibile specificare il testo del pulsante impostando le proprietà NextPageText e PreviousPageText, come nel seguente esempio:
GridView1.PagerSettings.NextPageText = "Click for next page"
GridView1.PagerSettings.PreviousPageText = "Click for previous page"
Per personalizzare l'aspetto dei controlli per lo spostamento tra le pagine è possibile anche utilizzare immagini. La classe PagerSettings comprende proprietà per URL di immagini che possono essere associate ai pulsanti di comando che consentono di passare alla prima pagina, all'ultima, a quella precedente e a quella successiva.
Infine, è possibile controllare l'aspetto dei comandi per lo spostamento tra le pagine impostando la proprietà PagerStyle del controllo GridView su un valore TableItemStyle.
Modello per lo spostamento tra i dati
Se si imposta la proprietà AllowPaging del controllo GridView su true, al controllo GridView verranno aggiunti automaticamente i controlli dell'interfaccia utente per lo spostamento tra le pagine. È possibile personalizzare l'interfaccia aggiungendo un modello PagerTemplate. Per specificare l'operazione di spostamento da eseguire, includere un controllo Button con la proprietà CommandName impostata su Page e la proprietà CommandArgument impostata su uno dei seguenti valori:
First Per passare alla prima pagina.
Last Per passare all'ultima pagina.
Prev Per passare alla pagina precedente.
Next Per passare alla pagina successiva.
Un numero Per passare a una pagina specifica.
Eventi di spostamento
Quando passa a una nuova pagina di dati, il controllo GridView genera due eventi. L'evento PageIndexChanging si verifica prima che il controllo GridView abbia eseguito l'operazione di spostamento. L'evento PageIndexChanged si verifica dopo che la nuova pagina di dati è stata restituita al controllo GridView.
È possibile utilizzare l'evento PageIndexChanging per annullare l'operazione di spostamento, se necessario, o per eseguire un'attività prima che il controllo GridView richieda una nuova pagina di dati. È possibile utilizzare l'evento PageIndexChanged per eseguire un'attività dopo che l'utente è passato a un'altra pagina di dati.