PDA

View Full Version : [C#] DataGrid con DataTable figli


guldo76
15-04-2005, 14:35
Ciao.
Ho fatto un datagrid con delle Relations, così la tabella padre apre la tabella figlia, con il segno "+" di fianco ad ogni riga, avete presente?
Bene, col DataGrid si possono impostare diverse proprietà delle colonne, come ad esempio se la colonna dev'essere in sola lettura.
Questo mi riesce, ma solo per la tabella padre.
Per la tabella figlia, non funziona.
Ad esempio:
// CLIENTI FUNZIONA
DataGridTableStyle dgtsClienti = new DataGridTableStyle();
dgtsClienti.MappingName = "Clienti";
dgrInfo.TableStyles.Add(dgtsClienti);
// Imposto il READ-ONLY delle colonne da non toccare
foreach (DataGridColumnStyle dgcs in dgrInfo.TableStyles[0].GridColumnStyles)
dgcs.ReadOnly = true;
// ORDINI NON FUNZIONA
DataGridTableStyle dgtsOrdini= new DataGridTableStyle();
dgtsOrdini.MappingName = "ClienteOrdine";
dgrInfo.TableStyles.Add(dgtsOrdini);
// Imposto il READ-ONLY delle colonne da non toccare
foreach (DataGridColumnStyle dgcs in dgrInfo.TableStyles[1].GridColumnStyles)
dgcs.ReadOnly = true;
dove dgrInfo è il DataGrid.
In particolare, l'insieme GridColumnStyles della seconda tabella risulta vuoto.
Non restituisce nessun tipo di errore, ma poi di fatto la seconda tabella non è in sola lettura.
C'è anche questo che funziona solo sulla tabella padre:
int j=0;
for(int i=0; i<ds.Tables[dgrInfo.DataMember].Rows.Count; i++)
if(dgrInfo.IsExpanded(i)) j++;
if(j!=0) this.dgrInfo.Collapse(-1);
else this.dgrInfo.Expand(-1);
Mi da una NullReferenceException se eseguito sulla tabella figlia.

Come si fa?!?