我使用网格面板。当我选择网格中的行时,会得到以下结果:
- 如果我在文件中提交表格。body'一切正常,表单字段已填充。
- 如果我在“窗口”面板中启动相同的“窗体”,则“窗体”字段为空。
- 当我同时使用这两者时,“文档”中呈现的Form。body”关闭,并填充窗口中的Form字段。
我犯错误的地方。
// Grip panel part
sm: new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function(sm, index, record) {deleteWindow.show();}
}
})
// End Grid panel part
var myForm = new Ext.form.FormPanel({
title:"Basic Form",
width:425,
frame:true,
items: [
new Ext.form.TextField({
id:"to",
fieldLabel:"To",
width:275,
allowBlank:false,
blankText:"Please enter a to address",
readOnly: true
}),
new Ext.form.TextField({
id:"subject",
fieldLabel:"Subject",
width:275,
allowBlank:false,
blankText:"Please enter a subject address",
readOnly: true
}),
],
buttons: [
{text:"Cancel"},
{text:"Save"}
]
});
var deleteWindow = new Ext.Window({
id: 'id_deleteWindow',
title: 'Delete',
closable:true,
width: 750,
height: 380,
plain:true,
layout: 'fit',
items: myForm
});
var id_test = 2; // This is only for this problem
//myForm.render(document.body); // When using this code everything is ok, and form fields are filled
myForm.getForm().load({
url:'ggg.php',
params:{
id: id_test
}
});
JSON数据
{success:true,results:[{"id_test":"1","to":"a","subject":"aa"}]}
2条答案
按热度按时间nnvyjq4y1#
我建议对代码进行以下更改:
1.使用name属性(name:'subject')代替在TextField上使用id属性(例如,id:'substite')
1.只是好奇……因为您正在网格上处理rowselect事件,所以您可能希望在表单面板中加载所选记录,而不是再次加载它。如果是这种情况,则可以在窗体面板上调用loadRecord()方法,并将记录对象传递给它,然后在窗口上调用show()方法
ifsvaxew2#
我发现当对表单调用
load
时,ExtJS会尝试访问form
dom元素以确定表单method
。我找到了两种解决方案:1.将
method
添加到表单配置1.显示窗口后将数据加载到窗体
下面是第二种解决方案的代码: