Ultrawingrid - как отобразить # 1/1/1800 # как пустое (как если бы ноль) - PullRequest
1 голос
/ 09 июня 2010

Ultrawingrid 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

Руководство высоко ценится

Ответы [ 2 ]

0 голосов
/ 17 июня 2010

Можете ли вы сделать свойство источника привязки обнуляемым DateTime??

0 голосов
/ 09 июня 2010

Есть ли у вас UltraDataSource для поддержки вашей сетки?Если это так, то e.Row.ListObject должен быть UltraDataRow, соответствующим строке сетки.

Я часто сохраняю ссылку на бизнес-объект в свойстве Tag UltraDataRow, и в итоге я получаю методы 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.

Надеюсь, это поможет!

...