2010-11-11 6 views
0

Je suis en train d'afficher dans la colonne d'information de parent dataTable:Ajout d'informations de parentdatatable à la colonne

Country (Id int, Name nvarchar) 
State (Id int, Name nvarchar, CountryId) 
Province (Id int, Name nvarchar,StateId) 
City (Id int, Name nvarchar,ProvinceId) 

Maintenant, je peux afficher name of province + name of state, mais je veux aussi afficher et trier par nameOfCountry

Il est un premier problème: Il n'y a pas dans la colonne EnumProvince dataTable

dictionaryData.EnumProvince.DefaultView.Sort = dictionaryData.EnumProvince.EnumStateIdColumn.ColumnName + "," + dictionaryData.EnumState.EnumCountryIDColumn.ColumnName ; 
for (int i = 0; i < dictionaryData.EnumProvince.DefaultView.Count; i++) 
{ 
    DictionaryData.EnumProvinceRow row1 = ((DictionaryData.EnumProvinceRow)dictionaryData.EnumProvince.DefaultView[i].Row); 
    DataRow row2 = dataTable2.NewRow(); 
    row2[0] = row1.EnumProvinceID; 
    //There is a second problem: row2 hasn't EnumCountryRow. 
    row2[1] = row1.Name + "(" + row1.EnumStateRow.Name +" - " + row1.EnumCountryRow.Name + ")"; 
    dataTable2.Rows.Add(row2); 
} 

    (dictionaryDataGridView.Columns[2] as RemindableDataGridViewComboBoxColumn).DataSource = dataTable2; 
    (dictionaryDataGridView.Columns[2] as RemindableDataGridViewComboBoxColumn).DisplayMember = dataTable2.Columns[1].ColumnName; 
    (dictionaryDataGridView.Columns[2] as RemindableDataGridViewComboBoxColumn).ValueMember = dataTable2.Columns[0].ColumnName; 
    dictionaryDataGridView.Columns[2].DataPropertyName = "EnumProvinceId"; 

est-il un moyen simple annonce d cette fonctionnalité à cette grille?

Meilleures salutations

Répondre

0

Ceci est ma solution, mais est très laid:/

row2[1] = row1.Name + opis + "(" + row1.EnumStateRow.Name + " - " + row1.EnumStateRow.Name ; 
          for (int indexOfCountry = 0; indexOfCountry < dictionaryData.EnumCountry.DefaultView.Count; indexOfCountry++) 
          { 
           var sth = ((DictionaryData.EnumCountryRow)dictionaryData.EnumCountry.DefaultView[indexOfCountry].Row); 
           if(sth.EnumCountryID==row1.EnumStateRow.EnumCountryID) 
           { 
            row2[1] += " - " + sth.Name + ")"; 
           } 
          } 
Questions connexes