我有一个连接到JSONRest的enhnaced网格,我在网格启动后填充它。 我很困惑如何在执行新查询时更新网格存储,任何人都可以帮忙吗?
var store = new JsonRest({
target: "rest/search"
});
dataStore = new ObjectStore({ objectStore: store });
/*set up layout*/
var layout = [[
{'name': 'Name', 'field': 'col1', noresize: true, 'width': '100%'},
]];
/*create a new grid:*/
grid = new EnhancedGrid({
id: 'grid',
store: dataStore,
structure: layout,
selectable: true,
selector: false,
selectionMode: 'none',
escapeHTMLInData: false,
autoHeight:true,
plugins: {
pagination: {
pageSizes: ["10", "25", "50"],
description: true,
pageStepper: true,
maxPageStep: 4,
defaultPageSize: 5,
sizeSwitch: true,
position: 'bottom'
}
}
}, document.createElement('div'));
grid.setQuery({
term: "term",
category: "category"
});
grid.startup();
做一个store.query确实打了我的后端,但是我如何用结果重新填充Grid?
store.query({term: "newterm", category: "newcategory"},
{
start: 10,
count: 10,
}).then(function(data){
});
答案 0 :(得分:0)
为了填充网格,您不应该直接执行商店查询 - 您应该指示网格使用商店,它将自己查询。
您似乎已经在调用DataGrid构造函数时分配了商店实例,而且您正在使用dojo/data/ObjectStore
正确包装它(因为dojox网格不支持dojo/store
),所以它是我不清楚为什么你甚至试图执行超出该范围的查询。您致电grid.startup()
后,应立即向服务部门看到网络请求。
如果您在创建网格时看到网络请求但是您没有在网格中看到结果,那么您的服务可能实际上不符合dojo/store/JsonRest
期望的约定。有关请求和响应中的预期信息,请参阅http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html。
如果您实际上询问如何告诉网格在将来的某个时间点使用其他商店,请致电grid.setStore(newstore)
。