0

在某些情况下,我必须在渲染后更改 Ext Js 组件的某些配置属性。在 Api 文档中,我没有看到大多数配置的 getter/setter。有什么方法可以更改配置然后重新渲染组件或更新布局?

在下面的代码中,我需要在 Ext.form.FieldSet 呈现后动态将 collapsible 属性更改为 true 或 false:

 var container = Ext.create("Ext.container.Container", {
     renderTo: Ext.getBody(),
     layout: {
         type: "vbox"
     }
 });

 var fieldset = Ext.create("Ext.form.FieldSet", {
     renderTo: "fieldset"
 });

 var text = Ext.create("Ext.form.field.Text", {
     renderTo: "text"
 });

 var button = Ext.create("Ext.Button", {
     renderTo: "button",
     text: "My Button"
 });

 fieldset.add(text);
 fieldset.add(button);

 container.add(fieldset);

以下代码也不会更新布局:

 Ext.apply(fieldset,{collapsible:true,style:"bakground:red"});

http://jsfiddle.net/2nyhE/

4

2 回答 2

0
fld.titleCmp.el.on({
    'click': fld.toggle,
    scope: fld
});

fld.titleCmp.el.addCls(me.baseCls + '-header-text-collapsible');

fld.legend.items.add(fld.createToggleCmp());
fld.legend.updateLayout();

http://jsbin.com/IFUZut/1/

于 2013-09-08T12:43:31.963 回答
-1

有方法折叠展开,您可以调用您的字段集来折叠或展开它。

你可以试试这个。为所需的字段集设置一个 id 属性(id:'anyId')并使用Ext.apply(Ext.getCmp('anyId'), {your config object});

Ext.applay 文件

你可以看到这个帖子

您还可以阅读此处Ext.apply添加的简单 javascript 参数和有什么区别。

于 2013-09-07T19:35:37.123 回答