Comment activer/désactiver un bouton de formes sans l'Aide Ext.getCmp() dans extjs4?
Voici le formulaire ci-dessous et je veux accéder à la forme du bouton appliquer à l'intérieur de la forme, sans l'aide Ext.getCmp() et de la définition d'un id pour le bouton:
{xtype : 'form',
url : 'index.php/submitform',
trackResetOnLoad : true,
id : 'generalprofilebasicinformation'+ this.getId(),
listeners : {
//is fired when the form is dirty(field values are modified)
dirtychange : {
fn : function(sm) {
//Here Is my problem:
//How to access to Apply button or any other buttons defined inside the form???
var applyButton = this.Button;
applyButton.enable();}}},
buttons : [{
text : 'Apply',
formBind : true, //only
//enabled
//once the
//form is
//valid
disabled : true,} ]}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un contrôleur pour écouter la 'dirtychange' événement déclenché par ce formulaire.
La réponse darren a donné va certainement travailler, ce composant utilise des requêtes afin de vous donner une autre façon d'atteindre et de contrôle des composants. Si vous souhaitez activer une série de boutons à l'intérieur de la forme, par exemple, vous pouvez supprimer le "texte=Appliquer" et un tableau de toutes les formes de boutons sera retourné.
Utiliser un constructeur et ensuite vous pouvez créer le bouton à l'intérieur et ensuite une référence dans votre formulaire. Une fois que vous avez la référence dans le formulaire, vous pouvez le récupérer à partir de l'écouteur que vous avez là. Devrait ressembler à ceci:
Qui devrait fonctionner sans l'aide Ext.getCmp()
D'accord avec jthirau - certainement utiliser un composant de requête.
Un autre moyen de faire ce que vous faites est tout simplement ajouter un gestionnaire de bouton. Cela va à droite sur le bouton config: