2012-08-24 2 views
0

J'ai une assez grande mise en œuvre d'un SmartGWT FilterBuilder, assez similaire à la Big Filter example in the SmartGWT showcase. Le FilterBuilder utilise un RestDataSource dessous pour créer ses champs via FormItem s avec des opérateurs et des valeurs disponibles, dont certaines proviennent du serveur et d'autres qui sont créées par des données côté client (par exemple un ComboBoxItem avec des options d'un ValueMap). Je fais actuellement des demandes au serveur basé sur les critères sous-jacents et cela fonctionne très bien. Maintenant, je veux empêcher mon bouton de requête d'exécuter son gestionnaire onclick lorsque les valeurs de FormItems ne sont pas valides. J'ai réussi à ajouter Validator à certains des FormItem s et DataSourceField s, et je peux voir dans le débogueur GWT que je reçois «invalide» retourné de CustomValidator l'état, pourtant, quand j'appelle filterBuilder.validate() je reçois toujours retour true (même avec des valeurs clairement invalides dans les champs).SmartGWT FilterBuilder en tant que DynamicForm?

Ce qui donne? Comment puis-je valider sur un FilterBuilder?

Répondre

0

Le filtre FilterBuilder n'affiche pas les erreurs de validation en ligne (pensez-y - c'est un composant très dense et il n'y a nulle part où coller les erreurs sans que cela ne soit très bizarre).

Généralement, vous n'avez pas besoin de vous préoccuper de la validation lors du filtrage. Si quelqu'un tape du texte dans un champ numérique, il n'y aura aucun résultat et ceci est explicite. La validation consiste à éviter d'enregistrer des données incorrectes dans la base de données.

Mais si vous avez une condition inhabituelle, le plus simple est de le renvoyer comme une erreur du serveur et de l'afficher à côté de l'interface de filtre ou sur la grille, dans un HTMLFlow par exemple.