2013-08-15 2 views
0

Я сталкиваюсь с чем-то странным или, может быть, так оно и работает, и его простое отсутствие понимания того, как работает datagridview. Я динамически добавлять столбец, когда я нажимаю на кнопкуC# DataGridView: значение исчезает в динамическом добавленном столбце

private void btnAssign_Click(object sender, EventArgs e) 
    { 
     if (!gvData.Columns.Contains("DepartmentId")) 
     { 
      DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell(); 
      DataGridViewColumn dc = new DataGridViewColumn(); 
      dc = new DataGridViewTextBoxColumn(); 
      dc.HeaderText = "DepartmentId"; 
      dc.Name = "DepartmentId"; 
      dc.CellTemplate = cell; 
      gvData.Columns.Add(dc); 
     } 
     foreach(DataGridViewRow row in gvData.SelectedRows) 
     { 
      row.Cells["DepartmentId"].Value = getSelectedValues(clbDept); 
     } 
    } 

сначала проверяет, если столбец DepartmentID находится в DataGridView (DGV). Если нет, я создаю новый Datagridviewtextboxcolumn и задает соответствующие параметры. Затем добавляет значения в ячейки. Это так хорошо ... это где странно ... когда я сортирую другой столбец, данные в столбце «Департамент» исчезают. Данные исчезают в столбцах, которые я динамически создаю. Должен ли я использовать метод сохранения или что-то еще?

ответ

0

Вместо добавления данных непосредственно в datagridview вам необходимо добавить столбец в источник данных и переназначить источник данных для datagridview. Это решит проблему сортировки.