2015-06-15 3 views
0

Я использую динамическое поле со списком в datatgridview и его заполнение правильно. Но когда я попытался добавить новую строку для datagridview, нажав кнопку Добавить новую строку, это поле со списком повторяется в ячейках. Если я нажму один раз, в ячейке 1 будет добавлено одно поле со списком, второй - добавить еще одну строку, в ячейку добавится два поля со списком. Как добавить новую строку в datagridview, не повторяя это поле со списком в ячейках? Мой код выглядит следующим образом:duplicate Combobox добавляет в ячейки в datagridview

private void btnRMAdd_Click(object sender, EventArgs e) 
     { 
      //add new row 
      dgItemGroup.Rows.Add(); 
      fnInsertColumnsCombo(); 
     } 

private void fnInsertColumnsCombo() 
     { 
      DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn(); 
      combo1.Name = "GroupName"; 
      combo1.HeaderText = "GroupName"; 
      string sqlStr = "SELECT GroupID,GroupName FROM tblITEMGROUP "; 
      SqlCommand cmd = new SqlCommand(sqlStr, con); 
      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      combo1.DataSource = dt; 
      combo1.DisplayMember = "GroupName"; 
      combo1.ValueMember = "GroupID"; 
      combo1.AutoComplete = true; 
      combo1.FlatStyle = FlatStyle.Flat; 
      dgItemGroup.Columns.Insert(0, combo1); 
      dgItemGroup.Columns[0].Width = 250; 
     } 

ответ

0

В вашем методе fnInsertColumnsCombo, вы добавляете новый столбец в сетке каждый раз при добавлении новой строки. Этот метод вызывается каждый раз, когда вы добавляете новую строку. Возможно, вы хотите добавить столбец на этапе «init», а затем заполнить данные после добавления новой строки.

Смежные вопросы