Сохранить значение, введенное в ячейку DevExpress Xtragrid - PullRequest
3 голосов
/ 22 января 2010

Я использую элемент управления DevExpress Xtragrid в моем приложении C # .net для Windows.

Я ввожу какое-то значение в первую ячейку сетки, и если я перейду ко второй ячейке, значение, введенное в первую ячейку, исчезнет.

Как сохранить значение, введенное в ячейку?

Ответы [ 2 ]

1 голос
/ 23 августа 2012

Я предполагаю, что вы используете это для несвязанного столбца в gridView (Xtragrid), первым делом обязательно перейдите к свойствам столбца и измените значение свойства UnboundType на тип данных, который вы будете вводить в этом столбце, пример ниже использует double.

Назначьте событие CustomUnboundColumnData вашему gridView. Убедитесь, что вы объявили переменную уровня класса (с именем _userEnteredData в приведенном ниже примере кода) для хранения значения, которое вы вводите в свой gridView, затем добавьте следующий фрагмент кода, но убедитесь, что вы изменили имена в соответствии с вашим gridView и имена переменных:

Объявление переменной уровня класса:

private double _userEnteredData = 0;

Теперь событие:

private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
    if (e.Column == gridColumn_YourColumn && e.IsSetData)
    {
        _userEnteredData = Convert.ToDouble(e.Value);
    }
    else if (e.Column == gridColumn_YourColumn && e.IsGetData)
    {
        e.Value = _userEnteredData;
    }
}

Надеюсь, это поможет.

Более подробную информацию вы можете получить здесь: http://documentation.devexpress.com/#WindowsForms/CustomDocument1477

1 голос
/ 26 января 2010

Мало возможностей:

  • проверьте свойство FieldName редактируемого столбца. Возможно, есть опечатка, поэтому grid не передает введенное вами значение в базовый источник данных
  • свойство, которое связано со столбцом, должно иметь открытый установщик. Если есть только геттер, сетка также не сможет хранить введенное значение
  • проверьте свойство ColumnOptions.ReadOnly в столбце сетки - должно быть установлено в false

Надеюсь, это поможет

...