Сохраните значение, введенное в ячейку DevExpress Xtragrid.

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

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

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


person Nagendra Baliga    schedule 22.01.2010    source источник


Ответы (2)


Я предполагаю, что вы используете это для несвязанного столбца в 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

person Marwan مروان    schedule 23.08.2012

Несколько возможностей:

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

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

person Przemaas    schedule 26.01.2010