Extjs checkcolumn désactiver pour certaines lignes, en fonction de la valeur
J'ai une grille, avec checkcolumn. C'est dataIndex est, par exemple, "cochées".
Je veux désactiver ou masquer les cases à cocher pour certaines lignes, où une autre valeur, 'can_be_checked", par exemple, est faux/vide.
Rendu est déjà défini dans checkcolumn, de jouer avec elle brise génération de case à cocher.
Comment puis-je le faire?
OriginalL'auteur Nameless | 2012-04-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez masquer la case à cocher juste à l'intérieur du moteur de rendu, par exemple:
J'ai édité. Essayez la solution.
+1 - a la recherche d'un moyen sécuritaire de "restituer" la case sans faire une "vrai" ou "faux" dans le domaine. thx.
il s'exécute, et certains enregistrements n'ont pas de CheckColumn qu'il est censé. cependant, je ne peux pas modifier cette colonne. Il est case à cocher mais je ne peux pas modifier sa valeur. autre colonne pleine de checkcolumn peut être modifié. ce qui était incorrect avec cela? est-il de l'initialisation de problème?
à l'aide de cette réponse de la Poste.ux.CheckColumn() sera créé à chaque fois que vous rendre la checkcolumn mais pas rerender. Pour éviter cela, nous avons besoin de retourner defaultRenderer. J'ai posté ma réponse ci-dessous.
OriginalL'auteur Aniketos
Je cherchais une solution à ce et suis tombé sur cette question, mais aucune solution viable n'importe où pour afficher une case à cocher désactivée au lieu de PAS de case à cocher dans les cas visés à l'autre réponse. C'était en cause, mais voici ce que j'ai fait (pour 4.1.0):
J'ai trouvé que le extjs\exemples\ux\css\CheckHeader.css fichier
est utilisé par
Ext.ux.CheckColumn
n'a pas désactivé la classe, donc jeeu à le modifier pour être plus comme le standard de la case à cocher style
contenues dans ext-all.css (qui n'inclut pas une case à cocher désactivée
classe).
J'ai dû prolonger
Ext.ux.CheckColumn
pour prévenir les événements en courstiré de désactivé les cases à cocher.
Enfin, j'ai dû fournir mon propre moteur de rendu pour appliquer les handicapés
classe selon ma logique.
Le code est comme suit.
Modifié CheckHeader.css:
L'arrière-plan-url de l'image ci-dessus points à cette image qui est normalement livré avec extjs 4.1.0: extjs\resources\themes\images\default\form\checkbox.gif.
L'étendue Ext.ux.CheckColumn classe de sorte que les événements vont pas me faire virer de désactivé checkcolumns:
Mise en œuvre avec le moteur de rendu personnalisé pour appliquer désactivé classe selon ma propre logique:
J'ai ajouté ce else{ cls.push(cssPrefix + 'x-grid-checkheader'); } et il a travaillé pour moi. Merci c'est vraiment m'a beaucoup aidé 😛
OriginalL'auteur Geronimo
À l'aide de extjs 5 il est plus facile de revenir defaultRenderer dans le moteur de rendu méthode pour cible les cases à cocher et " pour les autres.
Telle n'est pas la case rendu lui-même, mais tous les événements (c'est à dire checkchange, itemclick, etc) ne sera resté. Si vous ne le voulez pas, vous pouvez les désactiver dans beforesmth cas, par exemple
OriginalL'auteur fen1ksss
J'ai trouvé la solution au problème de la case à cocher ne pas cliquable lorsque avec Aniketos code, vous devez vous assurer que votre code de la colonne que vous spécifiez le xtype: 'checkcolumn, qui fera le tour
OriginalL'auteur Carlos H
J'ai aussi rencontré ce problème et pour aller plus loin, j'ai besoin d'une info-bulle montrer sur la case à cocher. Voici la solution que j'ai trouvé qui semble être la moins invasive sur l'existant checkcolumn widget...
OriginalL'auteur Allen Underwood