0

我有一个 OnDemandGrid 设置来显示我正在处理的项目的产品数据(称为部件)。我目前在产品数据库中只有两个条目。

我的 OnDemandGrid 仅设置了基本选项:存储和列。我希望它将是一个虚拟滚动网格。该商店被设置为 JsonRest 商店,带有缓存

当我打开页面并启动网格时会发生什么,网格不断向服务器发送数据请求 - 大约每秒 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 的第一个请求响应标头的屏幕截图: 在此处输入图像描述

4

1 回答 1

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 问题上的交互,问题可能是您的服务实际上根据查询返回了错误数量的结果。请参阅#691 上的这些评论

于 2013-09-26T12:55:46.817 回答