Validation
Vue d'ensemble
rs-grid prend en charge les validateurs par colonne. Un validateur est appelé avant qu'une édition de cellule soit validée. S'il retourne une erreur, l'édition est annulée et un callback est déclenché — la couche de données n'est jamais modifiée.
Ajouter un validateur
Définissez ColumnDef::validator avec un CellValidator :
La closure reçoit la valeur brute de la cellule et doit retourner :
Ok(())— accepter la valeurErr(String)— rejeter avec un message d'erreur
Écouter les erreurs de validation
Passez on_validation_error comme prop à <GridCanvas> :
Le callback est déclenché de façon synchrone après l'annulation de l'édition. Arguments :
Comportement
- La validation s'exécute uniquement sur les éditions utilisateur (
CommitEdit). Les écritures programmatiques viaGridModel::set_cellcontournent le validateur. - En cas de rejet,
CancelEditest appliqué automatiquement — la cellule revient à sa valeur précédente. Aucune entrée d'annulation n'est créée. - Les éditeurs
Selectsont également validés ; la valeur de l'option sélectionnée est passée au validateur avant la validation. - Les validateurs sont synchrones. Pour une validation asynchrone (ex. vérification
serveur), validez de façon optimiste puis revenez en arrière via
GridCommand::Undosi la vérification échoue.
Voir aussi
- Édition — cycle de vie de l'édition et types d'éditeurs
- API ColumnDef — référence du type
CellValidator - Annuler / Rétablir — comportement de la pile d'annulation