2010-06-08 59 views
1

Ultrawridrid 9.2 VS2008 .net 3.5Ultrawingrid - 如何顯示#1/1/1800#空白(如果爲空)

我的wingrid使用綁定源。在SQL Server中爲空的所有日期時間都以#1/1/1800的形式發送到綁定源#

我希望Ultrawingrid將此日期顯示爲空白,因爲它將顯示爲null。另外,如果網格中的日期爲空(即空白),我想將數據源更新爲日期#1/1/1800#(框架負責將該日期返回到後端作爲一個空)

這似乎應該是一個小事,但我可以找到沒有文件介紹了在哪裏介入,所以網格將看到一個特定的日期爲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 

指導保持空大加讚賞

回答

0

你有一個UltraDataSource支持網格?如果是這樣,那麼e.Row.ListObject應該是對應於網格行的UltraDataRow。

我經常保持在UltraDataRow的標記屬性業務對象的引用,我結束了看起來像這樣的(道歉C#,而不是VB.net)InitializeRow方法:

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訪問基礎數據源值。

希望這會有所幫助!

+0

謝謝你,保羅。不,我在網格下沒有UDS - 我使用我們框架的businessbindingsource來擴展bindingsource。但我認爲這可能是一個探索的方向 - 也許使用我們的BBS作爲UDR的來源......它可能會給我一個我需要的抽象層。 我有一些工作使用未綁定的列和處理程序的InitializeRow和AfterCellUpdate。它不漂亮,但它的工作原理。 我會研究UltraDataSource,看看我能不能拿出一些東西。 再次感謝。查爾斯 – 2010-06-09 22:42:53

0

您可以使綁定源上的屬性爲空嗎DateTime?