Creare una griglia dinamicamente da codice

sabato 13 ottobre 2012 - 11.11
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2

stellare21 Profilo | Newbie

Salve,

vorrei poter creare una griglia su cui inserire dati in modo dinamico da codice, decidendo di volta in volta le colonne e le righe che la compongono, la dimensione delle celle, il colore della stessa in base al tipo di dato, catturare eventi su di essa ecc.

stavo osservando la gridview in asp.net ma non ho trovato gli strumenti necessari per gestirla.

è possibile avere il totale controllo su una gridview? Oppure quale altra soluzione potrei adottare per risolvere la mia problematica?

andrestu Profilo | Expert

Forse per meglio controllare un "controllo" che espone dati allora conviene usare il ListView, anche se la grdiview per esempio ha una proprietà che ti permette di generare in automatico le colonne in dase all'origine dati.
Bisogna vedere se vuoi creare tu manulamente le colonne oppure vuoi che te le crea in automatico il controllo aspnet

stellare21 Profilo | Newbie

no ho bisogno di creare io le colonne, devo vedere la listview allora?

andrestu Profilo | Expert

Guarda è probabile che ci riesci con entrambi, io comunque per la maggiore uso quasi sempre il controllo ListView e ti dico che riesco a fare praticamente tutto.
Con il listview forse è un pò più "macchinoso" il processo perchè specialmente nel tuo caso dovresti creare tutto dinamicamente all'interno dei Template inserendo per esempio (facendo sempre riferimento alle tue esigenze) un controllo che funge da container e all'interno degli eventi del Listview fare riferimento al controllo container per poi inserire dinamicamente o altri controlli oppure direttamente markup html, invece con il gridview per esempio potresti aggiungere dinamicamente oggetti alla collection "Columns" semplificandoti così l'aspetto del rendering.
In poche parole se vuoi avere un totale e migliore controllo sul rendering del layout allora usa il ListView che sicuramente ti tornerà utile anche in futuro...
Considera che se vuoi avere accesso ai dati dall'interno del listview (idem per gridview) devi farlo all'interno dell'evento itemDataBound, a quel punto controlli l'origine dati e crei dinamicamente il layout.
Per quanto riguarda invece la riga di intestazione, per intenderci quella con le etichette per identificare le colonne, potresti o creartela manualmente, in questo caso devi accedere ai dati manualmente, o con un ulteriore listview impostato in modo da visualizzare 1 record solo e nel template di questo listview crei la riga di intestazione anche se così facendo se ti vengono restituiti 0 record non avresti il rendering quindi se vuoi sempre visualizzare almeno l'intestazione allora usa un altro metodo.
Per concludere se prendi piena padronanza di questo controllo puoi creare qualsiasi tipo di layout senza problemi.


Andrea Restucci - Web Developer
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5