Javascript 向容器extjs动态添加文本区域
我在向容器动态添加文本区域时遇到问题 容器的初始创建:Javascript 向容器extjs动态添加文本区域,javascript,extjs,extjs4,extjs3,Javascript,Extjs,Extjs4,Extjs3,我在向容器动态添加文本区域时遇到问题 容器的初始创建: xtype: 'container', layout: 'form', width: 400, ref: 'form', layoutConfig: { labelSeparator: ' ', trackLabels: true }, items: [{ xtype: 'textarea', value: 'test',
xtype: 'container',
layout: 'form',
width: 400,
ref: 'form',
layoutConfig: {
labelSeparator: ' ',
trackLabels: true
},
items: [{
xtype: 'textarea',
value: 'test',
fieldLabel: 'label',
anchor: '100%',
submitValue: false,
readOnly: true,
ref: '../field_1',
id: 'field_1'
}]
}
动态代码:
for (i = 4; i < obj.length; i++) {
var id = i + 12;
id = 'field_' + id;
var field = newTextArea(id);
field.setValue(obj[i].value);
field.setVisible(true);
this.form.add(field);
}
问题:
调试并查看表单时,textarea会添加到表单项中,但不会显示在浏览器中。有人能建议怎么做吗
问候,
Raj检查这个
不确定您的代码有什么问题,您没有提到什么是obj
,我认为this.form
对容器的引用是错误的。我认为您可以使用或类似的方法(例如组件的up
和down
方法)。检查此项
不确定您的代码有什么问题,您没有提到什么是
obj
,我认为this.form
对容器的引用是错误的。我认为您可以使用或类似的方法(例如组件的up
和down
方法)。在extjs3.x中,您必须在将项目添加到容器后调用doLayout
for (i = 4; i < obj.length; i++) {
var id = i + 12;
id = 'field_' + id;
var field = newTextArea(id);
field.setValue(obj[i].value);
field.setVisible(true);
this.form.add(field);
}
this.form.doLayout();
for(i=4;i
在extjs 3.x中,将项目添加到容器后,必须调用doLayout
for (i = 4; i < obj.length; i++) {
var id = i + 12;
id = 'field_' + id;
var field = newTextArea(id);
field.setValue(obj[i].value);
field.setVisible(true);
this.form.add(field);
}
this.form.doLayout();
for(i=4;i
动态代码在哪里以及在什么范围内执行?不确定“this.form”是否是引用容器的正确方法。@scebotari动态代码在表单范围内执行,如果我使用rendered:true,EL是未定义的错误。检查这个简单的fiddle-。不确定您的代码有什么问题,您没有提到什么是obj
,我认为this.form
对容器的引用是错误的。我认为您可以使用Ext.ComponentQuery.query
或类似的方法(如up
和down
可查询组件的方法)。动态代码在何处以及在什么范围内执行?不确定“this.form”是否是引用容器的正确方法。@scebotari动态代码在表单范围内执行,如果我使用rendered:true,EL是未定义的错误。检查这个简单的fiddle-。不确定您的代码有什么问题,您没有提到什么是obj
,我认为this.form
对容器的引用是错误的。我认为您可以使用Ext.ComponentQuery.query
或类似的方法(例如up
和down
方法来查询可查询的组件)。