我有一个带有关联网格的表单,可以满足一对多的关系。当我使用url加载表单时,我还可以使用以下代码获取网格数据
this.load({
url:reportURL + 'editReport',
waitMsg:'Loading...',
params:{
reportIdKey: this.reportId
},
success:function(form,action){
response = action.result.data; // Contains the data for the grid
}
})
返回的json如下
{
"data":{
"setupDt":"09-27-2011",
"expireDt":"12-31-1950",
"reportNm":"Report_55283",
"templateNm":"risk_measures_tmpl",
"GridData":
*[
{
"sId":1,
"sNm":"W",
"mId":1,
"mNm":"R",
"pId":"..",
"pIdAlias":"",
"bId":"...",
"bIdAlias":"",
"pDesc":"FUND==GB|ACT==WG|W",
"grpId":"",
"scF":"",
"sortSeq":1,
"grpN":1
}
]*
如何将上述json中的网格数据加载到我的网格中。
请帮帮我..},“成功”:“true”}
发布于 2011-11-06 02:43:12
ExtJS网格使用存储来更新网格。商店实际上是必需的。您可以只使用json store。当你得到响应时,对商店调用loadData
。之所以使用loadData
而不是load
,是因为表单已经完成了AJAX调用,而load
会再次尝试执行该调用。例如(所有这些都假设是ExtJS 3.4,我不知道您使用的是什么版本,但在ExtJS 4中几乎是一样的):
var gridStore = new Ext.data.JsonStore({
root: 'GridData',
fields: [
'sid',
// ... your other field names under 'GridData'
]
});
var myGrid = new Ext.grid.GridPanel({
store: gridStore,
// ... your other config options here
});
this.load({
url:reportURL + 'editReport',
waitMsg:'Loading...',
params:{
reportIdKey: this.reportId
},
success:function(form,action){
response = action.result.data; // Contains the data for the grid
gridStore.loadData(response);
}
});
一旦loadData
完成,网格将作为正常load
事件处理程序的一部分自动更新自身,当您构造网格时,这些事件处理程序由网格附加到存储。
发布于 2011-11-08 16:36:45
我已经通过迭代结果json并在字段中设置相应的属性({store.getRecordType:value})解决了这个问题。
https://stackoverflow.com/questions/8022171
复制相似问题