Tanti controlli diversi tra cui scegliere! Quali sono le procedure consigliate per determinare quale controllo utilizzare per la visualizzazione dei dati in ASP.NET?
Tanti controlli diversi tra cui scegliere! Quali sono le procedure consigliate per determinare quale controllo utilizzare per la visualizzazione dei dati in ASP.NET?
Risposte:
Si tratta davvero di ciò che stai cercando di ottenere
Gridview - Limitato nel design, funziona come una tabella html. Più funzionalità integrate come modifica / aggiornamento, pagina, ordina. Molte spese generali.
DataGrid: vecchia versione di Gridview. Un gridview è un super datagrid.
Datalist: versione più personalizzabile di Gridview. Ha anche alcune spese generali. Più lavoro manuale in quanto devi progettarlo da solo.
ListView - il nuovo Datalist :). Quasi un ibrido di datalist e gridview in cui è possibile utilizzare il paging e creare funzionalità simili a Gridview, ma con libertà di progettazione. Uno dei nuovi controlli di questa famiglia
Ripetitore - Molto leggero. Nessuna funzionalità incorporata come intestazioni, piè di pagina. Ha il minimo sovraccarico.
Tutti gli altri lo hanno colpito: dipende.
Ora per alcune indicazioni specifiche (espandendo l'eccellente risposta di WebDude sopra) ...
Il tuo progetto si inserisce in un foglio di calcolo naturale o in una visualizzazione griglia dei dati? GridView .
Hai bisogno di visualizzare un elenco o un'altra visualizzazione formattata dei dati, possibilmente con intestazioni e piè di pagina, e probabilmente con controlli e / o formattazioni specifici per ogni record di dati? (Ad esempio, collegamenti personalizzati, eventualmente LinkButtons o controlli di modifica specifici?) Questo display specificamente non si adatta naturalmente a un foglio di calcolo o a una visualizzazione griglia?Visualizzazione elenco
Se soddisfi tutti i criteri di ListView, ma ti adatteresti naturalmente a una griglia, puoi prendere in considerazione DataList .
Vado per Repeater quando ho solo bisogno di alcuni dati di base iterati con alcuni bit di progettazione personalizzata, senza intestazioni, senza piè di pagina, belli e puliti.
La dichiarazione del codice di esempio seguente è possibile per tutti e 3 (ListView, DataList, Repeater)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
negli elenchi seguenti È possibile visualizzare i modelli e le opzioni disponibili per ciascuno di essi e vedere personalmente le differenze
ListView (nota la modifica, il gruppo, l'inserimento, il layout)
DataList (nota le coppie di stili)
Ripetitore
CompositeDataBoundControl :
guarda la seguente gerarchia delle classi (e relativi controlli).
questi controlli ospitano altri controlli asp.net nei loro modelli per visualizzare i dati associati all'utente
Il controllo ListView
Il controllo ListView utilizza anche modelli per la visualizzazione dei dati. Tuttavia, supporta molti modelli aggiuntivi che consentono più scenari quando si lavora con i dati. Questi modelli includono LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
Il controllo ListView (a differenza di DataList e Repeater ) supporta anche implicitamente la possibilità di modificare, inserire ed eliminare dati usando un controllo origine dati. È possibile definire modelli individuali per ciascuno di questi scenari.
Il controllo DataList
Il controllo DataList funziona come il controllo Repeater . Ripete i dati per ogni riga del set di dati e visualizza questi dati in base al modello definito. Tuttavia , presenta i dati definiti nel modello all'interno di varie strutture HTML. Ciò include le opzioni per il layout orizzontale o verticale e lo consente anche di impostare il modo in cui i dati devono essere ripetuti, come layout di flusso o tabella.
Il controllo DataList non utilizza automaticamente un controllo origine dati per modificare i dati. Invece, fornisce eventi di comando in cui è possibile scrivere il proprio codice per questi scenari. Per abilitare questi eventi, aggiungi un controllo Button a uno dei modelli e imposta la proprietà CommandName del pulsante sulla parola chiave modifica, elimina, aggiorna o annulla. L'evento appropriato viene quindi generato dal controllo DataList.
Il controllo ripetitore
Il controllo Repeater utilizza anche modelli per definire l'associazione personalizzata. Tuttavia, non mostra i dati come record individuali. Invece, ripete le righe di dati come specificato nel modello. Ciò ti consente di creare una singola riga di dati e di ripeterla su tutta la pagina.
Il controllo Repeater è un modello di sola lettura . Ovvero, supporta solo ItemTemplate. Non supporta implicitamente la modifica, l'inserimento e l'eliminazione. Dovresti considerare uno degli altri controlli se hai bisogno di questa funzionalità, altrimenti dovrai codificarlo tu stesso per il controllo Repeater.
Le descrizioni di cui sopra provengono dal libro MCTS Exam 70-515 Sviluppo di applicazioni Web con Microsoft.NET Framework 4 .
DataGrid non è nemmeno menzionato in questo libro ed è sostituito dai popolari GridViews e hanno risposto piacevolmente da altri utenti
Infatti! Ho scritto nel blog sulle differenze tra gli strumenti di dati ASP.NET 4.0 . Fondamentalmente, le visualizzazioni a griglia sono il modo più potente per presentare le informazioni tabulari, mentre i controlli ListView sono per visualizzazioni più complicate di dati ripetuti. Se dessi un consiglio a un principiante di ASP.NET, gli direi di imparare a fondo le visualizzazioni della griglia e di ignorare gli altri controlli per cominciare.
Tutto dipende dal modo in cui desideri disporre i tuoi dati.
Se hai bisogno di controllare il layout (come tabelle contro CSS contro qualsiasi cosa), quando usi un ripetitore o ListView. Tra i due, ListView ti offre molti più eventi e comandi incorporati per la modifica, la selezione e l'inserimento. Inoltre funzionalità di paging e raggruppamento. Un Repeater è estremamente semplice, ripete un layout con i dati. Poiché stai creando il layout a mano, Listview e Repeater richiedono più codice.
GridView è un DataGrid aggiornato, quindi non c'è quasi alcun motivo per utilizzare DataGrid. GridView funziona molto bene quando collegato a origini dati ASP.NET standard, ma ti limita a un layout tabulare con molte regole di layout. GridView richiede meno codice poiché stai usando un layout integrato.