Travailler dans la grille
Une grille à colonnes modifiables se comporte comme un tableur. Rien sur cette page ne se configure : tout découle d'une colonne déclarée editable, et de la permission canCreate de la table liée pour la ligne de fin.
La grille entière est un unique arrêt de tabulation. Tab y entre une fois, et à partir de là les flèches déplacent un curseur de cellule plutôt que de parcourir chaque cellule dans l'ordre de tabulation. Les flèches se déplacent d'une cellule et traversent les colonnes en lecture seule au lieu de les sauter ; Origine et Fin sautent aux extrémités de la ligne ; Page préc. et Page suiv. déplacent d'une fenêtre, en atterrissant sur une vraie ligne ; Entrée valide une modification et descend le curseur d'une ligne, prêt à ressaisir une colonne ; Échap annule et conserve le curseur ; Tab avance d'une cellule, en passant à la ligne suivante au bout de la ligne. Le curseur s'arrête à chaque bord et ne fait jamais le tour de la grille. La grille s'annonce avec les rôles grid, row et gridcell, et le curseur porte aria-selected.
Un clic avec Maj depuis le curseur étend la sélection en un rectangle de cellules, pas en une plage de lignes entières. La cellule du curseur porte un petit carré à son coin inférieur droit — la poignée de recopie — sur une colonne modifiable uniquement. La faire glisser prévisualise l'étendue sans rien écrire ; la relâcher écrit un enregistrement par ligne de l'étendue, et un glissement latéral recopie à travers les colonnes, chaque destination convertissant la valeur qu'elle reçoit. Une valeur que la colonne de destination ne peut pas porter est refusée et nommée, et le reste de la recopie atterrit tout de même : faire glisser un mot dans une colonne numérique vous dit quelle colonne l'a refusé et ce que cette colonne accepte. Un double-clic sur la poignée recopie vers le bas jusqu'à la fin de la colonne voisine.
La dernière ligne du corps est une ligne de fin vierge, sous les données et au-dessus du récapitulatif. Y saisir puis valider crée un enregistrement et fait pousser une nouvelle ligne de fin en dessous. Échap abandonne une ligne de fin non enregistrée et n'écrit rien ; une validation à laquelle manque un champ obligatoire est refusée, la colonne est nommée, et ce qui a été saisi reste là pour être corrigé. Le regroupement donne à chaque groupe sa propre ligne de fin, préremplie avec la valeur de ce groupe. La ligne de fin suit la même règle de permission que le bouton de création de la barre d'outils : un rôle qui ne peut pas créer d'enregistrements n'obtient pas de ligne de fin du tout, plutôt qu'une ligne désactivée.
Une grille ne se rafraîchit pas d'elle-même par défaut. Sans refreshMode déclaré sur sa dataSource, une modification faite ailleurs n'atteint pas une grille ouverte. refreshMode: realtime ouvre une connexion vivante et applique les changements à mesure qu'ils arrivent, et une connexion bloquée en reconnexion le dit dans la grille plutôt que de laisser un tableau périmé passer pour à jour.
Quelles cellules sont modifiables
Une cellule est modifiable quand sa colonne déclare editable: true. Un double-clic ouvre l'éditeur ; un clic sur la case à cocher de sélection sélectionne la ligne à la place, et un clic sur un en-tête de groupe replie ce groupe — c'est la cible qui décide de ce que signifie un clic, jamais le rythme.
L'editSelect d'une colonne d'action est la liste déroulante en ligne qu'un éditeur de ligne propose pour une colonne à choix. Elle prend options ou un optionsSource — la même liaison par table ou par point d'entrée qu'accepte un composant select —, et les deux s'excluent mutuellement, n'en déclarer aucun étant refusé net : une liste déroulante sans rien dedans n'est pas un contrôle utile.
Pages connexes
- Tableaux de données — les colonnes, la barre d'outils et le reste du composant
table. - Liaison de données —
refreshModeet le reste dedataSource. - Permissions sur les tables — la permission
canCreatedont dépend la ligne de fin.
Dernière mise à jour 23 septembre 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.