GridView vs. Tabella HTML (ASP.net 2.0)
-
03-07-2019 - |
Domanda
Per il pieno controllo della tua applicazione, preferisci una tabella GridView o HTML? E perché?
Ad esempio, devo creare hyperlink al volo per riga in una tabella GridView / HTML. Quale oggetto sarebbe più facile aggiungere quella funzione (o altre come questa)?
Nota: sto creando a livello di codice i miei set di dati
Soluzione
Se non è necessario il supporto integrato per l'ordinamento o il paging e si desidera un maggiore controllo sull'output di rendering, prenderei in considerazione l'utilizzo di un controllo Repeater per l'output di una tabella. Se hai bisogno dell'ordinamento / paging integrato, GridView può essere molto utile.
Se vuoi il meglio di entrambi i mondi, aggiorna ad ASP.net 3.5 e usa ListView.
MODIFICA: Puoi chiarire cosa intendi con "collegamenti ipertestuali al volo" per riga?
Altri suggerimenti
Stai lontano da Gridview. Deve abbattere l'intero set di dati per eseguire il paging. È molto più veloce eseguire il rendering solo delle righe necessarie (ad esempio, le righe 30 - 40 di 6.0000) e utilizzare un controllo cercapersone separato. Anche quando si tratta di HTML / CSS, usare un ripetitore o una visualizzazione elenco sarà molto più facile da eseguire il debug, dato che avrai il controllo totale sul codice.
Un semplice HTML < table > generato da Response.Write è semplice e ha l'ulteriore vantaggio che se lavori su un sistema non Microsoft, non ti sentirai nudo senza i loro controlli web ASP.NET ridondanti che per lo più rendono più difficile generare HTML tutti lo sa già.
Penso che il Repeater o il più recente ListView sia la strada da percorrere se non hai bisogno di smistamento e / o paging. Repeater e ListView consentono di controllare l'HTML (GridView è una black box totale in questo senso e genera un HTML atroce) evitando il noioso codice lato server fornito con il controllo <asp:Table>
: & Quot; OK, nuova riga. Nuova cella. Fai qualcosa con cellulare. Aggiungi cella alla riga. Aggiungi riga alla tabella. Ripetere quot &;.
D'altra parte, se hai bisogno di paginazione e ordinamento, GridView è probabilmente la soluzione migliore.
Puoi usare GridView o più semplici controlli simili a Repeater per creare il tuo html, anche se devi ordinare / pagina i tuoi dati.
Con un ripetitore, ad esempio, è possibile creare un sistema personalizzato di impaginazione utilizzando un'origine dati PagedDataSource con la proprietà AllowPaging impostata su true
.
L'unico problema è chiaramente che con un semplice ripetitore devi scrivere più codice per fare il lavoro che GridView svolge in modo nativo.
Ma il risultato è più veloce .