将 UltraGrid 日历选择器的值重置为空白

Reset the value of an UltraGrid calendar picker to blank

我的 UltraGrid 中的一列具有日历选择器的单元格样式,因为该字段的数据类型是 Date/Time。这个的初始值为_ _ /_ _ /_ _

当我单击复选框样式单元格(代表数据库中的布尔值)的复选框之一时,我可以 select 来自日期单元格的日期,这工作正常。但是,当我再次单击该复选框(将其从 True 值设置为 False)时,我希望同一行的日期值重置回 _ _ / _ _ / _ _

这是怎么做到的,甚至可能吗?我试过使用 .Reset 之类的东西,这似乎不是一个有效的方法,以及设置为 .Value = Nothing,这也没有用。

首先,您需要在日期列中允许空值。为此,您可以处理网格的 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;