2010-10-06 2 views
2

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

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

ответ

0

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++; 
} 
Смежные вопросы