Ajouter un bouton personnalisé dans les menus déroulants de l'en-tête de colonne {EXTJS 4}
Je veux un bouton dans la colonne d'en-tête de menu déroulant de la grille dans extjs4.
afin que je puisse ajouter ou supprimer des colonnes qui sont liés à la base de données.
Toute aide sera appréciée...
Merci..:)
source d'informationauteur NarayaN
Vous devez vous connecter pour publier un commentaire.
Il y a quelques mois j'ai eu le même problème. J'ai réussi à le résoudre en étendant Ext.de la grille.l'en-tête.Conteneur (j'ai surdéfini getMenuItems méthode). Toutefois, récemment, j'ai trouvé une autre solution qui requiert moins de codage: il suffit d'ajouter l'élément de menu à la main après la grille widget est créé.
Je vais poster la deuxième solution ici:
Ici est démo.
Mise à JOUR
Ici est démo pour ExtJs4.1.
De ce que j'ai pu voir, vous devriez éviter de l'événement afterrender.
Contexte:
L'application que je suis bâtiment utilise un magasin avec un modèle dynamique. Je veux que ma grille d'avoir un modèle personnalisable qui est récupéré depuis le serveur (Afin que je puisse avoir colonnes personnalisables pour ma grille personnalisable).
Depuis l'en-tête n'était pas disponible pour être modifié (depuis le magasin reçoit reloaded et détruit le menu que j'ai modifiée à l'aide de l'exemple ci-dessus). Une autre solution qui a le même effet peut être exécuté en tant que tel:
Pour les personnes qui voudrais ne pas avoir juste un "standard" de la colonne de menu, mais une personne columnwise comme moi, peut utiliser les éléments suivants
J'ai pris @nobbler de répondre à un créé un plugin pour cela:
C'est la façon dont vous l'utilisez (customMenu dans la colonne config vous permettent de définir votre menu):
La façon dont ce plugin fonctionne résout également un problème, que les autres implémentations couru dans. Depuis les éléments de menu personnalisés sont créés qu'une seule fois pour chaque colonne (la mise en cache de la déjà rendu de la version), il ne l'oubliera pas de si il a été vérifié avant ou pas.