ExtJS FormPanel меняет имена элементов - PullRequest
2 голосов
/ 06 октября 2010

У меня есть FormPanel с деревом флажков, которые добавляются при создании. Теперь я хочу изменить общий шаблон имени всех флажков внутри панели. В соответствии с DOM имена меняются правильно, но когда я отправляю форму, старые имена отправляются. Пробовал звонить .doLayout но без везения. Есть идеи?

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();
},

1 Ответ

0 голосов
/ 28 февраля 2011

doLayout только изменяет размеры / переставляет объекты; это не меняет свойства, такие как имя элемента. Чтобы изменить имена созданных вами элементов, вам нужно выполнить некоторые манипуляции с DOM, как показано ниже (при условии, что o - это 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++;
}
...