PDA

View Full Version : [ASP.NET] Personalizzare un Datagrid (urgente!)


Bizkaiko
17-02-2008, 11:37
Ciao, ho una pagina in cui l'utente seleziona dei parametri di ricerca e dev'essere visualizzato un elenco di risultati.
Il problema è che a seconda dell'utente, i campi da visualizzare variano.
Ora, io ho creato un DataGrid (DGSegn) che dovrebbe essere appunto generato dalla query.

Nel codice VB io mi creo la mia query, a seconda degli utenti, e riempio il datagrid:
Dim objConn As New OdbcConnection(CnxDB)
objConn.Open()
'inizializzo objCommand...
Dim objCommand As New OdbcCommand(SQLSegnalaz, objConn)
'leggo i dati e chiudo la connessione
Dim objDataReader As OdbcDataReader
objDataReader = objCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
'databind alla datagrid
DGSegn.DataSource = objDataReader
DGSegn.DataBind()

E fin qui nessun problema.
Io vorrei mettere una prima colonna con il testo "Dettagli" ed il link ad una pagina "dettagli.aspx?ID=num" dove num sarebbe l'id della segnalazione, che viene restituito dalla query.
E vorrei che invece la colonna con questo ID non fosse visibile (non per questioni di riservatezza, ovviamente, ma solo di "estetica")
Il problema è che se setto la column(0).visible=false, mi nasconde ovviamente la colonna che dovrebbe contenere il link, se metto column(1).visible=false, mi restituisce errore.
Dovrei settare la proprietà autogeneratecolumns del datagrid su false, e generare le colonne manualmente, ma da VB non riesco a capire quale sia la sintassi esatta per permettermi di aggiungere le colonne:
NomeDatagrid.Columns.Add... e poi cosa ci metto...?

Non posso costruirle direttamente nella parte "html" perchè appunto, a seconda dell'utente la query mi tira fuori campi diversi.
Potrei anche fare un "SELECT *" però poi avrei sempre il problema di rendere invisibili alcune colonne.