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

时间:2016-09-12 08:14:52

标签: vb.net datetime infragistics ultragrid

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

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

这是怎么做的,或者甚至是可能的?我尝试使用.Reset之类的内容,这些内容似乎不是一种有效的方法,也设置为.Value = Nothing,这也是行不通的。

1 个答案:

答案 0 :(得分: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来为具有null值的单元格设置一些自定义字符串:

//  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;