我正面臨向動態添加文本區域到容器的問題。將文本區域動態添加到容器extjs
容器的初始創建:
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);
}
函數來創建文本區:
function newTextArea(id) {
var text_Area = new Ext.form.TextArea({
fieldLabel: 'Test',
height: 30,
width: 250,
submitValue: false,
readOnly: true,
autoScroll: true,
id: id
});
return text_Area;
}
問題:
當我調試,看看形成,表單項中添加了textarea,但未在瀏覽器中顯示。有人可以建議做什麼?
問候,
拉吉
動態代碼在哪裏和在哪個範圍內執行?不確定「this.form」是引用容器的正確方法.. – scebotari66
@scebotari動態代碼被執行的形式作用域,如果我使用呈現:true,EL是未定義錯誤即將到來。 – user1770589
檢查這個簡單的小提琴 - https://fiddle.sencha.com/#view/editor&fiddle/1ne5。不知道你的代碼有什麼問題,你沒有提到什麼是'obj',我認爲'this.form'是對容器的錯誤引用。我認爲你可以使用'Ext.ComponentQuery.query'或類似的東西(比如用於查詢組件的'up'和'down'方法)。 –