Ultrawingrid - 如何将#1/1/1800#显示为空白(如null)

时间:2010-06-08 22:50:00

标签: .net datetime null infragistics ultrawingrid

Ultrawingrid 9.2 VS2008 .net 3.5

我的wingrid使用绑定源。 SQL Server中为空的所有日期时间都作为#1/1/1800#

传递给bindingsource

我希望Ultrawingrid将此日期显示为空白,因为它将从源显示为空。

此外,如果网格中的日期为空(即消隐),我想将数据源更新为#1/1/1800#日期(该框架负责将该日期更新回到后端。 null)

这似乎应该是一件小事,但我找不到关于干预的文档,因此网格会将特定日期视为null并将null保存为特定日期。

这是我前进的方向,但我不认为哪一个是正确的地方,我甚至无法在BeforeRowUpdate中使用语法,因为我看不到如何设置传递给的值数据绑定没有设置控件本身的值,我认为必须保持为空以显示为空白

Private Sub ugPropMaster_BeforeRowUpdate(ByVal sender As Object, ByVal e As _
   Infragistics.Win.UltraWinGrid.CancelableRowEventArgs) Handles _
   ugPropMaster.BeforeRowUpdate

    If e.Row.Cells.Item("Exdate").Value Is Nothing Then

        e.Row.Cells("Exdate").Value = CDate(#1/1/1800#)

    End If

 End Sub



  Private Sub ugPropMaster_InitializeRow(ByVal sender As Object, ByVal e As _
    Infragistics.Win.UltraWinGrid.InitializeRowEventArgs) Handles _
    ugPropMaster.InitializeRow

    If CDate(e.Row.Cells.Item("Exdate").Value) = CDate(#1/1/1800#) Then
        e.Row.Cells.Item("Exdate").Value = Nothing
    End If

End Sub

非常感谢指导

2 个答案:

答案 0 :(得分:0)

你有支持网格的UltraDataSource吗?如果是这样,则e.Row.ListObject应该是与网格行对应的UltraDataRow。

我经常在UltraDataRow的Tag属性中保留对业务对象的引用,最后我得到了类似这样的InitializeRow方法(对C#而不是VB.net道歉):

    private void mygrid_InitializeRow(object sender, InitializeRowEventArgs e)
    {
        try
        {
            UltraDataRow udr = e.Row.ListObject as UltraDataRow;
            if (udr == null)
            {
                return;
            }

            MyRecord rec = udr.Tag as MyRecord;
            if (rec == null)
            {
                return;
            }

            ...

您还可以从udr.Band.Cells访问基础数据源值。

希望这有帮助!

答案 1 :(得分:0)

你能否使绑定源上的属性成为可空的DateTime?