dojo OnDemandGrid(Dgrid)不会引发请求

ohtdti5x  于 2022-12-08  发布在  Dojo
关注(0)|答案(1)|浏览(159)

滚动网格时,当您到达20个项目的末尾时,它不会触发对更多项目的新请求
我使用的是Dojo版本1.10.4。我创建了一个TrackableRest存储

var TrackableRest = declare([Rest, Trackable]);
    var interceptStore = new TrackableRest({
        target: 'rest/intercepts/', 
        accepts: "application/json",
        sortParam: 'sort',         
        rangeStartParam: 'offset',
        rangeCountParam: 'limit',
        headers:{
            'Accept': "application/json",
            'Content-Type':"application/json",
            'charset':"UTF-8"             
        },
        idProperty: 'id'
    });

然后我创建了一个网格:

var grid = window.grid = new CustomGrid({
    id: 'grid',
    //sort: [{property:'ELNOT'},{property:'RF_AVG'}], // Initialize sort on last name, ascending
    collection: interceptsStore,
    sort: "id",
    getBeforePut: false,
    columns: getColumns(),
    allowSelectAll: true,
    loadingMessage: 'Loading data...',
    noDataMessage: 'No results found.',
    title: "All",
    minRowsPerPage: 20,
    maxRowsPerPage: 250
});

发送请求http://localhost:8080/OlympiaMap/rest/intercepts/?sort=+id&offset=0&limit=20
响应包括标头Content-Range,其值为items=0-20/606,数据类似于enter image description here

mf98qq94

mf98qq941#

因此,经过两天的等待,我意识到,即使您以所需的格式返回内容标头,但它似乎使用的是您的响应总数、限制和偏移量中的值(或您为开始和计数参数选择的任何参数)。例如,在我的响应头中,我返回了值为“items 0-20/606”的Content-Range,但在实际的响应中,我有一个包含20个项目的items数组,总共20个。当我硬编码这个值(只是为了测试)以匹配606值时,我开始看到虚拟滚动工作,并发送请求增加开始和计数。
滚动http://localhost:8080/OlympiaMap/rest/intercepts/?sort=+id&offset=20&limit=20
等等等等
这是由于缺少有关部分数据存储和数据网格的文档

相关问题