2010-03-29 8 views
2

J'ai un DevEdit TextEdit qui est databound à un ensemble de données.Pourquoi une valeur non valide est-elle générée?

Le champ est un pourcentage facultatif (type de données double).

Lorsque l'enregistrement est chargé et qu'il n'y a pas de valeur dans le champ, tout va bien.

Cependant, si vous tapez quelque chose dans le champ (IE 100), puis que vous voulez l'enlever par la suite, j'obtiens une Valeur Invalide, une erreur. Pourquoi cela se produit-il et comment puis-je l'enlever?

Je n'ai aucun masque ou aucune sorte de validation explicite sur ce champ.

Répondre

4

J'ai résolu ce problème avec l'aide de Brendon Muck sur les forums DevExpress.

Un de mes de TextEdit était lié à la propriété Text au lieu du EditValue (tous devrait être lié à EditValue)

En outre, par Brendon

Suppression du texte hors du contrôle TextEdit n » t définir le champ sur NULL. Vous devez gérer l'événement EditValueChanged et définir manuellement la valeur sur null lorsqu'une chaîne vide est détectée.

Alors, je l'ai créé méthode pour gérer

Private Sub SetTextEditToNull(ByVal sender As TextEdit) 

    If String.IsNullOrEmpty(sender.EditValue.ToString.Trim()) And (Not sender.EditValue Is DBNull.Value) Then 

     sender.EditValue = DBNull.Value 

    End If 

End Sub 

Et dans mon gestionnaire d'événements que j'utilise:

SetTextEditToNull(CType(sender, TextEdit))