ExtJs 4 référence au bouton de barre d'outils dans la grille
je veux définir une ref à l'intérieur de la manette pour activer/désactiver la suppression de la buitton sur le changement de sélection. Mais je n'ai pas l'obtenir, de sorte que le getDelButton()-Méthode fournit pas défini. S'il vous plaît aider...
Contrôleur:
refs:[
{ ref: 'tabPanel', selector: 'viewport > tabPanel' },
{ ref: 'grid', selector: 'tabPanel > usermanagementgrid' },
{ ref: 'delButton', selector: 'grid > button #delete'}
],
...
this.getDelButton().setDisabled(false);
Définition de la vue:
dockedItems: [{
xtype: 'toolbar',
items : [ {
xtype: 'button',
id: 'delete',
iconCls: 'drop-add',
text: 'Add',
tooltip: 'Press to add a new user.',
action: 'addUser',
scope: this,
},
Merci d'avance...
S'il vous plaît accepter une réponse, ou ajouter un commentaire si vous n'obtenez pas ce que vous avez besoin.
OriginalL'auteur fadh | 2011-08-26
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement 3 problèmes avec votre sélection:
button#delete
.gridpanel
au lieu degrid
.button
n'est PAS un enfant direct degrid
. C'est probablement un enfant direct detoolbar
dans ce cas. Ce que cela signifie est que vous devez faire quelque chose de plus comme:gridpanel > toolbar > button#delete
OUgridpanel button#delete
.En référence à #3 ci-dessus, le
>
sélecteur de moyen DIRECT de l'ENFANT de parent. Cela signifie littéralement un enfant de la mère, et pas seulement un élément quelque part en bas de la nidification de la chaîne. Si vous voulez juste tirer un bouton dans votregridpanel
ensuite utilisergridpanel button
. Cela va de la recherche à travers l'ensemble degridpanel
l'enfance et à l'intérieur de tous ces enfants de trouver quelque chose correspondant àbutton
. Sachez cependant que l'utilisation de cette façon sera de retour TOUS les boutons à l'intérieur de lagridpanel
(sauf bien sûr si vous spécifiez l'id).Enfin, à l'aide de votre console de firebug vous aidera ÉNORMÉMENT. Ouvrir firebug, et dans la console, vous pouvez exécuter des commandes. Ainsi, la charge jusqu'à la grille et exécutez la commande suivante:
Ext.ComponentQuery.query('gridpanel > toolbar > button#delete')
et voir ce qui est retournée. De cette façon, vous n'avez pas à continuer à aller en arrière et en avant à partir de votre code et de l'actualisation de la fenêtre du navigateur. Gardez à l'esprit quequery()
retourne un tableau.Je ne suis pas un ExtJS gourou par tous les moyens. Cependant, quand j'ai essayé d'utiliser le sélecteur Ext.ComponentQuery.query (), cela ne fonctionnerait pas moins que j'ai utilisé gridpanel vs grille. Je suis curieux de savoir pourquoi, et si je l'ai trouver, je vais le poster ici. Merci pour le +1!
OriginalL'auteur LittleTreeX
j'ai eu un problème similaire, il s'est avéré être le sélecteur de grille, normalement, vous le sélecteur utilise xtype et la grille a grille ou gridpanel. Essayez d'utiliser
selector: 'gridpanel >button #delete'
OriginalL'auteur nscrob
Vérifier la itemId propriété.
OriginalL'auteur Marko