Domanda

Ho una procedura di archivio che gestisce il paging a livello di database, ricevendo @ PageSize e @ PageIndex . Posso crearne un altro per restituire @ PageCount , date le dimensioni della pagina.

Posso fare in modo che un datagrid esegua il paging a livello di database senza doverlo sviluppare al di fuori del controllo, usando il pager di controllo?

Sembra che l'uso predefinito del paging di Datagrid riceva tutti i risultati della query e faccia il paging al di fuori del database. Non è un bene per noi, un sovraccarico inutile.

È stato utile?

Soluzione

Imposta AllowCustomPaging = " true " sull'aspx. E quando si esegue il database:

mygrid.VirtualItemCount = pageCount; 
mygrid.DataSource = mysource; 
mygrid.DataBind();

Sulla base del tuo commento " Uso connessione ADO, comando, ecc. e dopo aver caricato i risultati in un elenco di oggetti (le mie classi di entità), creo datagrid.DataSource = List; "

Altri suggerimenti

Se si utilizza un controllo ObjectDataSource come DataSourceID di GridView, funziona in modo piuttosto fluido. I controlli ObjectDataSource hanno un paio di parametri in cui puoi dirgli i nomi delle proprietà PageIndex e MaxRows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top