Добавление информации из parentdatatable в столбец - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь отобразить в столбце информацию из родительской таблицы данных:

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

Теперь я могу отобразить name of province + name of state, но я также хочу отобразить и отсортировать по nameOfCountry

Существует первая проблема: В 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";

Есть ли простой способ добавить эту функцию в эту сетку?

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 11 ноября 2010

Это мое решение, но оно очень уродливо: /

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 + ")";
                                }
                            }
...