DataGrid : esplodere un DataGridTableStyle

mercoledì 22 marzo 2006 - 18.28

DAVES Profilo | Newbie

Ho associato ad un DataGrid un dataset per la visualizzazione di dati contenuti in una tabella del DB caricati mediante il metodo Fill di un Adapter.

1) Se imposto
DataSource=Dataset e DataMember =Tabella
allora visualizzo le colonne della tabella restituite dalla SelectCommand dell'Adapter.
In questo modo non posso impostare dimensioni personalizzate per ciascuna colonna. (ad esempio la larghezza)
Qualcuno può smentirmi???? Se esiste un modo per dimensionare ciascuna colonna??

2) Se imposto
DataSource=Dataset e aggiungo a TableStyle un DataGridTableStyle =Lista con le colonne della tabella del DB,
posso personalizzare le dimensioni di queste ma in cambio non posso visualizzare immediatamente la tabella restituita dalla FILL. Devo comunque cliccare sulla freccia per espandere il nodo padre e poi cliccare su Lista per visualizzare le colonne restituite.

Vorrei espandere automaticamente "l'albero" del DataGridTableStyle poichè ho una sola tabella da visualizzare.

Grazie

Saluti Davide

19018 Profilo | Expert

Ciao, per il punto uno certo che si può fare..è una cosa del genere:

dataGridView1.Columns[indice].Width = val;

per il punto due non ho ben capito cosa cerchi...sorry!
Stefano Passatordi

http://blogs.dotnethell.it/stem/

DAVES Profilo | Newbie

Grazie Stefano, qualche giorno ti offro un caffè in piazza dante!!!

Nel secondo punto volevo sapere se esiste un modo per impostare un DataGridTableStyle come open quando carico il dataset associato mediante la Fill.

Ad Esempio:
Ho aggiunto a DataGrid una tabella Lista mediante TabelStyle.Items.add("Lista") e alla tabella lista delle colonne dopo aver impostato il datasource = "DataSet".
Dataset contiene i risultati della SelectCommand di SQLDataAdapter.

Quando chiamo SqlDataAdapter.Fill(Dataset) Carico il Dataset ma dentro il DataGrid ho la Tabella Lista chiusa. (Vedo + del nodo padre ). Se clicco sul + apro Lista e visualizzo i dati nelle rispettive colonne. Vorrei saltare il passaggio manuale di espansione del nodo padre

Spero di essere stato chiaro, altrimenti non fa nulla .

Ciao

19018 Profilo | Expert

Ma anche tu vivi a Pisa??...se è così accetto il caffè volentieri!

Per espandere il + in automatico, prova a ciclare per tutte le righe e usa questo comando nel ciclo :


dataGrid1.Expand(i);

Ciao!
Stefano Passatordi

http://blogs.dotnethell.it/stem/

DAVES Profilo | Newbie

Si anch'io vivo a Pisa ed ho terminato gli studi in informatica a dicembre ma al corso specialistico in informatica per l'economia e l'azienda. Per il caffè fammi sapere quando puoi io lavoro in centro posso disimpegnarmi quando voglio.

Ritornando al problema, sto usando il fremwork1.1 di visual studio .net 2003 e DataGridWiew non esiste, quindi la proprietà width non posso usarla.

Ora provo con il ciclo forse otterrò il risultato sperato.

Ne APPROFITTO ANCORA :

è possibile cancellare il contenuto di una listbox quando imposto come datasource un DataTable??

In pratica ho 3 listbox : la 1 scatena la seconda e la seconda scatena la terza
quando cambio il valore nella 1 vorrei cancellare il contenuto della 3.

ListBox3.Clear() dentro l'evento SelectedChangedIndex di ListBox1 solleva l'eccezione :ArgumentException impossibile eliminare contenuto del controllo quando è impostato un datasource

Ho risolto il problema nascondendo la listbox3 finchè non arriva un nuovo valore dalla 2.

Grazie nuovamente
Ciao

Davide Amato
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5