1

超翼鸟 9.2 VS2008 .net 3.5

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

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

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

这似乎应该是一件微不足道的事情,但我找不到关于在哪里进行干预的文档,因此网格会将特定日期视为空值并将空值保存为特定日期。

这是我一直在前进的方向,但我认为两者都不是正确的地方,我什至无法在 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

非常感谢指导

4

2 回答 2

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 访问基础数据源值。

希望这可以帮助!

于 2010-06-09T13:35:04.093 回答
0

您可以使绑定源上的属性为 nullableDateTime?吗?

于 2010-06-16T21:23:54.717 回答