我正在尝试使用Dojo JSONREST的增强网格,但遇到了一些问题。我一直在找一些例子,但不知道如何做我需要的。
在下面的代码中,我的rest服务接受两个参数,并且对该服务的查询是有效的。问题是,当调用grid.startup()时,它似乎会再次调用Rest服务,因为没有传递任何参数,所以Rest服务会失败。我在这里做错了什么?
还有什么方法可以更新到存储区,使其只包含查询的结果吗?,所以当网格出现时,它只包含这些值?
感谢任何帮助或建议。。
ready(function(){
var grid;
var store = new JsonRest({
target: "rest/search"
});
store.query({term: "test", category: "category"},
{
start: 10,
count: 10,
}).then(function(data){
// how do i update store with queried results?
});
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
}, document.createElement('div'));
grid.startup();
}
您尝试过设置网格的查询参数吗?指向文档的链接。还有一个例子的链接。
通过查看问题中的代码,网格似乎应该显示数据块/页面——一个使用网格分页插件的例子。
过滤器插件也可能对您感兴趣。
当您定义一个新网格时,您必须将其传递给dojo:
/*create a new grid:*/
grid = new EnhancedGrid({
id: 'grid',
store: dataStore,
structure: layout,
selectable: true,
selector: false,
selectionMode: 'none',
escapeHTMLInData: false,
autoHeight:true
}, document.createElement('div'));
/*append the new grid to the div*/
dojo.byId("gridDiv").appendChild(grid.domNode);
grid.startup();