【问题标题】:Reset the value of an UltraGrid calendar picker to blank将 UltraGrid 日历选择器的值重置为空白
【发布时间】:2016-09-12 08:14:51
【问题描述】:
我的UltraGrid 中的一列具有日历选择器的单元格样式,因为该字段的数据类型是Date/Time。 this的初始值为_ _ /_ _ /_ _
当我单击复选框样式单元格的其中一个复选框(表示数据库中的布尔值)时,我可以从日期单元格中选择一个日期,这可以正常工作。但是,当我再次单击复选框(将其从 True 值设置为 False)时,我希望同一行的日期值重置回 _ / _ _ / _ _
这是如何完成的,或者甚至有可能吗?我尝试使用 .Reset 之类的东西,这似乎不是一个有效的方法,以及设置为 .Value = Nothing,这也不起作用。
【问题讨论】:
标签:
vb.net
datetime
infragistics
ultrawingrid
【解决方案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;