2010-10-06 17 views
2

J'ai un FormPanel avec un arbre de cases à cocher qui est ajouté à la création. Maintenant, je veux changer le modèle de nom général de toutes les cases à cocher dans le panneau. Selon le DOM les noms sont changés correctement mais quand je soumets le formulaire toujours les vieux noms sont soumis. J'ai essayé d'appeler .doLayout mais sans aucune chance. Des idées?ExtJS FormPanel change les noms des éléments

changePredicateName: function (panel, predicateName) { 
    var ref = this; 
    this.counter = 0; 
    panel.cascade(function (o) { 
     var name = ref.groupId + "." + predicateName + "." + ref.counter + "_value"; 
     if (o instanceofnExt.form.Checkbox) { 
      o.name = name; 
      ref.counter++; 
     } else if (o.titleCheckbox) { 
      o.titleCheckbox.name = name; 
      ref.counter++; 
     } 
     return true; 
    }); 
    panel.doLayout(); 
}, 

Répondre

0

doLayout ne redimensionne/réorganise que les objets; il ne change pas les propriétés telles que le nom d'un élément. Afin de changer les noms des éléments que vous avez créés, vous devrez effectuer certaines manipulations DOM comme suit: (En supposant que o est un Ext.Element):

if (o instanceofnExt.form.Checkbox) { 
    o.name = name; 
    o.set({ name: name }); 
    ref.counter++; 
} else if (o.titleCheckbox) { 
    o.titleCheckbox.name = name; 
    o.titleCheckbox.set({ name: name }); 
    ref.counter++; 
}