2014-11-03 3 views
2

Я использую кнопки добавления, редактирования и удаления EmbeddedNavigator. Я подписался на событие gridControl1_EmbeddedNavigator_ButtonClick, и там я проверяю, какая кнопка нажата.Как сохранить изменения строк в DevExpress GridView с помощью EmbeddedNavigator

Проблема в том, что когда я редактирую ячейку, и я нажимаю сохранить изменения (EndEdit) Я не вижу новых значений. Вот код, у меня есть:

private void gridControl1_EmbeddedNavigator_ButtonClick(object sender, DevExpress.XtraEditors.NavigatorButtonClickEventArgs e) 
{ 
    if (e.Button.ButtonType == DevExpress.XtraEditors.NavigatorButtonType.EndEdit) 
      { 
       if (MessageBox.Show("Do you want to save the changes?", "Save changes?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) 
       { 
        var rowHandle = gridView1.FocusedRowHandle; 

        // Here if the port is null by default, when I change it to 25 
        // I still get an empty string 
        var port = Convert.ToString(gridView1.GetRowCellValue(rowHandle, "ftpPort")); 

        var ftpConfig = new FtpConfiguration() { ftpPort = port }; 
        // Update and save 
        context.UpdateFtpConfiguration(ftpConfig); 
        context.Save(); 
       } 
       else 
        e.Handled = true; 
      } 
} 

Может быть, я должен добавить их в ряд первых, но как?

ответ

4

Попробуйте опубликовать изменения в нижележащие DataSource перед сохранением:

if (gridView1.IsEditing) 
    gridView1.CloseEditor(); 

if (gridView1.FocusedRowModified) 
    gridView1.UpdateCurrentRow(); 
+0

Спасибо! Закрытие редактора делало трюк. Теперь изменения включены, и я могу легко обновить строку в базе данных. – Apostrofix

+0

Спасибо, мне не хватает вызова метода updateCurrentRow. = D – Harima555

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