Domanda

Ho un ListView che sto collegando in una raccolta di oggetti qualcosa del genere:

int total;
List<Client> clientList = 
    clientData.GetClients(criteria, pageNum, pageSize, out total);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Dove pageNum, pageSize e parametri totali facilitano il paging a livello di accesso ai dati. Fin qui tutto bene.

Ora posso lanciare un DataPager sulla pagina, puntarlo su ListView e ottenere un UX di paging decente. C'è un po 'di più quando si esegue il binding a livello di codice anziché dichiarativamente con un controllo dell'origine dati , ma il problema qui è che DataPager si aspetta che venga recuperato l'intero set di risultati ogni volta, da cui dovrebbe calcolare impaginazione, quindi vede la singola pagina dei risultati restituita come totale dei record disponibili e viene renderizzata come se fosse disponibile una sola pagina di risultati. In altre parole, lo scenario sopra riportato funziona perfettamente con DataPager se passiamo a una versione non paging di GetClients:

List<Client> clientList = clientData.GetClients(criteria);
uxClientList.DataSource = clientList;
uxClientList.DataBind();

Ovviamente, dato che il nostro livello di accesso ai dati è abbastanza gentile da fornirci un metodo per recuperare una pagina alla volta, sarebbe preferibile recuperare tutti i record ogni volta. Sarebbe bello se potessimo informare esplicitamente DataPager del totale dei record disponibili in modo da poter creare automaticamente l'output di impaginazione, ma per farlo solo una pagina alla volta.

Non ho trovato un modo semplice per farlo e non ho trovato nulla nelle ricerche. Devo ammettere che al momento non ho una conoscenza approfondita dell'implementazione di DataPager, quindi spero di trascurare qualcosa.

È stato utile?

Soluzione

Non hai trascurato nulla.

Quando si ha a che fare con set di risultati di grandi dimensioni è necessario disattivare il paging e aggiungere i propri controlli di paging.

Nella mia esperienza < < lt &; gt &; gt &; gt &; sufficiente. Nessuno supera comunque la terza pagina.

Altri suggerimenti

Dai un'occhiata a ListViewPagedDataSource e ai suoi AllowServerPaging , penso che potrebbe essere ciò che stai cercando ..

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