2009-08-14 9 views
7

Attualmente ho un ripetitore la cui origine dati è un elenco in cui ModelObject è una classe personalizzata nel front-end utilizzato per rendere più efficiente il rendering complesso LINQ a oggetto SQL. Ad esempio, rende URL per collegamenti, nomi di stati, ecc. I nomi di stato non sono nel database perché sapevamo che avremmo dovuto localizzare questa app un giorno."L'origine dati non supporta il paging dei dati lato server" quando si utilizza una raccolta front-end

Ora ho bisogno di pagina e ordinare questo elenco, quindi sto cercando di passare a una vista della griglia per sfruttare la funzionalità out of the box. Viene visualizzato l'errore "L'origine dati non supporta il paging dei dati sul lato server". Quale tipo di origine dati posso utilizzare per consentire al mio front-end di personalizzare l'output? Sembra che dovrebbe essere un'attività comune perché le app che sono localizzate necessitano dei valori di ordinamento che escono dai file resx.

Grazie per il vostro aiuto.

+0

Puoi mostrare il tuo codice. –

+0

Il codice che ho è troppo esteso per includerlo facilmente. Dovrò fare un esempio più semplice in un nuovo progetto, che potrebbe aiutarmi comunque a risolvere il problema. –

risposta

8

Non è possibile utilizzare un oggetto IQueryable per il bind dei dati su GridView e continuare a utilizzare Paging e ordinamento. È necessario restituire un elenco a GridView utilizzando il metodo ToList().

si veda questo articolo DevToolShed per ulteriori informazioni:
http://www.devtoolshed.com/content/gridview-objectdatasource-linq-paging-and-sorting

+0

Questo link sta aiutando. La prima cosa che dovevo fare è cambiare l'origine dati da IEnumerable a IList. Penso che dovrò lavorare di più con una ObjectDataSource personalizzata, ma ancora una volta, questo link copre questo. –

3

Per coloro che sono sempre questo errore, ma di attuazione:

IEnumerable<T> or 
IEnumerable or 
IList<T> or 
IDictionary<T1, T2>. 

è necessario implementare ICollection (quello non generico) per voi per ottenere l'errore "L'origine dati non supporta l'errore di paging dei dati sul lato server".