2010-06-08 19 views
1

Ultrawingrid 9.2 VS2008 3.5 deUltrawingrid - comment afficher # 1/1/1800 # en blanc (comme si null)

mon WinGrid utilise un BindingSource. Toutes les dates qui sont nulles dans SQL Server sont envoyées à la source de liaison sous la forme # 1/1/1800 #

Je voudrais que Ultrawingrid affiche cette date comme étant vierge comme une source nulle. De plus, si la date est nulle dans la grille (c.-à-d. Masquée), je voudrais mettre à jour la source de données à la date # 1/1/1800 # (le framework s'occupe de remettre cette date dans le backend).

Cela semble être une question triviale, mais je ne trouve aucune documentation sur l'endroit où intervenir, donc la grille verra une date particulière comme une valeur nulle et enregistrer une valeur nulle comme une date particulière.

C'est la direction que j'ai prise mais je ne pense pas que ce soit le bon endroit et je ne peux même pas obtenir la syntaxe pour travailler dans BeforeRowUpdate car je ne vois pas comment définir une valeur qui est passée à la liaison de données sans réglage de la valeur de contrôle lui-même, que je pense doit rester nulle afin d'afficher en blanc

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 

orientation très apprécié

Répondre

0

avez-vous une UltraDataSource sauvegarde de votre réseau? Si tel est le cas, e.Row.ListObject doit être l'UltraDataRow correspondant à la ligne de la grille.

Je garde souvent une référence à un objet métier dans la propriété Tag du UltraDataRow, et je finis avec des méthodes InitializeRow qui ressemblent à ceci (mes excuses pour C# au lieu de 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; 
      } 

      ... 

Vous pouvez accéder également aux valeurs de source de données sous-jacentes de udr.Band.Cells.

Espérons que cela aide!

+0

Merci, Paul. Non, je n'ai pas de SDU sous la grille - j'utilise la businessbindingsource de notre framework qui étend bindingsource. Mais je pense que cela peut être une direction à explorer - peut-être utiliser notre BBS comme source de l'UDR ... Cela peut me donner la couche d'abstraction dont j'ai besoin. J'ai quelque chose qui fonctionne en utilisant une colonne non liée et des gestionnaires pour InitializeRow et AfterCellUpdate. Ce n'est pas joli, mais ça marche. Je vais regarder dans UltraDataSource et voir si je peux trouver quelque chose là-bas. Merci encore. Charles –

0

Pouvez-vous rendre la propriété sur la source de liaison nulle DateTime??