1

Ultrawingrid 9.2 VS2008 .net 3.5

私のwingridはbindingsourceを使用しています。SQL Serverでnullであるすべての日時は、#1/1/1800#としてバインディングソースに配信されます

Ultrawingridに、ソースからのnullと同じように、この日付を空白として表示したいと思います。

また、グリッド内の日付がnullの場合(つまり空白)、データソースを日付#1/1/1800#に更新したいと思います(フレームワークはその日付をnullとしてバックエンドに戻す処理を行います)

これは些細なことのように思えますが、グリッドが特定の日付をnullとして認識し、nullを特定の日付として保存するために、介入する場所に関するドキュメントが見つかりません。

これは私が向かっている方向ですが、どちらも正しい場所ではないと思います。データバインディングに渡される値を設定する方法がわからないため、BeforeRowUpdateで構文を機能させることさえできません。コントロール自体の値を設定せずに、空白として表示するにはnullのままにする必要があると思います

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

バインディング ソースのプロパティを nullable にすることはできますDateTime?か?

于 2010-06-16T21:23:54.717 に答える
0

グリッドをサポートする UltraDataSource はありますか? その場合、e.Row.ListObject はグリッドの行に対応する UltraDataRow である必要があります。

UltraDataRow の Tag プロパティでビジネス オブジェクトへの参照を保持することがよくありますが、最終的には次のような InitializeRow メソッドになります (VB.net ではなく C# で申し訳ありません)。

    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 に答える