Сбросьте значение календаря UltraGrid на пустое

Один из столбцов в моем UltraGrid имеет стиль ячейки календаря, так как тип данных этого поля Date/Time, Начальное значение этого _ _ ​​/_ _ /_ _

Когда я нажимаю на один из флажков ячейки стиля флажка (представляющего логическое значение в базе данных), я затем могу выбрать дату из ячейки даты, и это прекрасно работает. Однако, когда я снова нажимаю на флажок (устанавливая его из True значение, чтобы False), Тогда я хочу, чтобы значение даты той же строки сбрасывалось обратно на _ _ /_ _ /_ _

Как это сделать, или это вообще возможно? Я пытался использовать такие вещи, как .Reset который не является допустимым методом, а также установка .Value = Nothingчто тоже не сработало.

1 ответ

Решение

Сначала вам нужно разрешить нулевые значения в столбце даты. Для этого вы можете обработать событие InitializeLayout сетки и установить для свойства Nullable вашего столбца даты значение Null следующим образом:

//  Set Nullable property of the column to Null
e.Layout.Bands[0].Columns["Date"].Nullable = Infragistics.Win.UltraWinGrid.Nullable.Null;

Обратите внимание, вы также можете установить некоторую настраиваемую строку для ячеек с нулевым значением, установив NullText следующим образом:

//  You may also set some custom string for Null cells.
e.Layout.Bands[0].Columns["Date"].NullText = "__/__/____";

Наконец, когда флажок установлен в false, вам нужно установить соответствующее значение ячейки даты в DBNull следующим образом:

//  Get the row of the active cell
var row = this.ultraGrid1.ActiveCell.Row;

//  Set the corresponding Date cell value to DBNull
row.Cells["Date"].Value = DBNull.Value;
Другие вопросы по тегам