7
votes

Comment persistez EXTJS DataGrid Column colonne cacher / montrer / déménager / redimensionner?

J'aimerais apporter des modifications d'un utilisateur à un écran de colonne ExtJS DataGrid (masquant, montrant, déménagement, redimensionnement) persistant et stocké sur le serveur. Il y a beaucoup d'événements à écouter, mais l'enregistrement des gestionnaires sur la grille elle-même ne semble pas entraîner des alertes appelées: xxx

(mon approche de base peut être optimale ou non optimale. )

Ce que devrais-je concrétiser pour écouter ces événements? Je peux masquer, montrer, déplacer et redimensionner des colonnes sans déclencher une alerte.


2 commentaires

Cela a travaillé avec un gridpanel, mais un éditeurGradPanel a des problèmes. Toute suggestion pour une éditeur d'état dans l'étage?


Peu importe la dernière question; Je devais régler Stadid et tout était heureux.


3 Réponses :


2
votes

La grille devrait avoir une propriété appelée "sotculeuse". Définissez ceci sur true et la grille doit se rappeler les largeurs de colonne, etc.


0 commentaires

0
votes

Configurez la grille avec Stateful: true et définissez son StateID (facultatif si votre grille contient un identifiant qui ne changera pas). Initialise également l'ext.state.Manager: xxx

Bien que non inclus dans EXT 3, vous pouvez trouver en ligne un fournisseur d'état qui utilise le localStorage de HTML5 plutôt que des cookies. < / p>


0 commentaires

16
votes

premier , vous devez configurer un fournisseur d'état .
CookieProvider est le seul qui vient intégré avec ExtJS xxx

seconde , marque YourgridPanel.Statful comme true troisième , regardez si vous devez modifier la valeur par défaut pour Gridpanel . Stidevents

Ceci est fondamentalement " un éventail d'événements qui, lorsqu'ils sont tirés, doivent déclencher ce composant pour enregistrer son état "

quatrième , httpstateprovider ne vient pas construire En avec ExtJs mais Saki a un UX (extension utilisateur) pour elle .

cinquième , si vous souhaitez enregistrer des états de plusieurs composants, ils devraient avoir soit < Code> ID ou StateID défini explicitement.

Une bonne approche serait de l'obtenir comme prévu avec le cookieProvider puis basculez vers Fournisseur HTTP .


3 commentaires

C'est une extension 2.x et lorsque j'ai essayé de l'exécuter de 3.x, j'ai été "non défini n'est pas une fonction" essayant d'instantiier ext.ux.httpProvider (). Des conseils sur l'obtention d'un port 3.0?


Est-il possible de stocker l'état de toutes les rangées de la grille?


@Shekhar - L'état de la grille est concerné par la configuration de la grille. Pas avec les données de magasin que vous voyez dans les rangées. Vous devrez gérer la sauvegarde des lignes dans le backend et les récupérer à l'aide de paramètres à votre appel de votre serveur depuis le magasin.