我有一个OnDemandGrid设置来显示我正在处理的项目的产品数据(称为部件)。我目前在产品数据库中只有两个条目。
我的OnDemandGrid只设置了基本选项:store和columns。我希望它将是一个虚拟滚动网格。商店被设置为JsonRest商店,带有Cache
当我打开页面并启动网格时会发生什么,网格不断向服务器发送请求以获取数据 - 大约每秒2个请求。
我也意识到,对于只有两行的网格,它右侧有一个滚动条。当我尝试使用此滚动条滚动时,我发现网格似乎闪烁并重置自身。多次。
我怀疑虚拟滚动功能正在做一些时髦的事情,不知何故不承认只有两个条目。有人可以帮助我吗?如果有必要,我愿意提供更多细节。
顺便说一下,这是我的代码:
require(["dgrid/OnDemandGrid", "dojo/store/Memory", "dojo/store/Cache"], function(OnDemandGrid, Memory, Cache){
var partsCache = new Memory();
App.Store.parts = new Cache(partsMaster, partsCache);
var grid = new OnDemandGrid({
store: App.Store.parts,
columns: {
name:'Part Name',
part_no:'Part Number'
},
}, "grid");
grid.startup();
})
partsMaster是一个先前定义的JsonRest存储(目前是全局的 - 将网格转换为旋转)。我已经做了一些测试来安全地确定JsonRest不是问题。
这是当前网格的截图(注意滚动条的存在):
感谢任何帮助!
编辑:附件是来自chrome的第一个请求响应标头的屏幕截图:
答案 0 :(得分:1)
根据屏幕截图,您的响应似乎不包括Content-Range标头,这是dojo/store/JsonRest
用于通知自己集合中结果总数的内容。虽然我不确定单独会导致你的无限查询问题,但它肯定会引起问题。
Content-Range标题应如下所示: Content-Range: items 0-24/500
(假设结果集中的项目总数为500)。
有关JsonRest如何期望服务行为的更多信息,请参阅http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html。
如果这不能完全解决问题,我也很想知道响应主体确实产生了正确的结果子集。
编辑:基于我今天在dgrid问题上的交互,问题可能是您的服务实际上是根据查询返回错误数量的结果。请参阅these comments on #691。