I controlli ASP.NET GridView e ListView consentono di selezionare una riga. Nelle versioni di ASP.NET precedenti alla 4.0, questa selezione era basata sull'indice di riga della pagina di dati correntemente visualizzata nel controllo. L'effetto di questo comportamento era che selezionando ad esempio la terza riga della pagina 1 di una GridView, spostandosi poi nella pagina 2 ci si ritrovava la terza riga della pagina 2 anch'essa selezionata.
Questo però nella maggior parte dei casi non era quello che l'utente desiderava e quindi eravamo costretti da codice ad intervenire al cambiamento di pagina per eliminare la selezione. In ASP.NET 4.0 è stata finalmente introdotta una nuova funzionalità denominata Persisted Selection.
Abilitando questa funzionalità , ASP.NET non baserà più la selezione di una riga sulla base del suo indice di pagina ma sulla base della sua chiave. Avendo quindi ciascuna riga una chiave dati differente, al variare della pagina correntemente visualizzata la riga della nuova pagina avente lo stesso indice non viene selezionata perchè avrà ovviamente una chiave dati differente. Immaginiamo una GridView che visualizzi un elenco di prodotti, ciascun prodotto avrà sicuramente un suo ID prodotto (chiave) univoco.
Inoltre, spostandosi nuovamente nella pagina in cui la riga era stata selezionata questa tornerà nuovamente nello stato di selezione. Questa nuova proprietà è disponibile per il controllo GridView e per il controllo ListView:
<asp:GridView id="GridView1" runat="server" PersistedSelection="true"> </asp:GridView>