【问题标题】:Customize buffered grid paging parameters自定义缓冲网格分页参数
【发布时间】:2019-04-29 11:59:39
【问题描述】:

我想在 POST 正文而不是 urlParam 中发送我的分页参数。我怎样才能做到这一点?我曾尝试在煎茶论坛和许多其他地方进行搜索,但找不到任何示例。我应该像这篇文章那样修改 prefetchPage 函数吗? ExtJS Infinite Scroll Grid with remote Filters and Sort

我想要代替

/serviceCall?start=0&limit=100&pageIndex=1

我想要

/serviceCall?

Body : 
{   
 "start" : 0,
 "limit" : 100,
 "pageIndex" : 1,
 "pagingId": uuid (some extra parameter)
}

【问题讨论】:

    标签: extjs extjs6


    【解决方案1】:

    你需要设置:

    • actionMethods - 设置请求读取应该使用POST 方法完成。

    • paramsAsJson - 通过表单而不是 url 参数发送参数

    • extraParams - 设置额外参数 (pagingId)

    • pageParam - 将页面参数从默认page更改为自定义pageIndex

    例子:

    var myStore = Ext.create('Ext.data.Store', {
        autoLoad: true,
        fields: ['a'],
        noCache: true,
        remoteSort: false,
        remoteFilter: false,
        pageSize: 10,
        proxy: {
            paramsAsJson: true,
            url: "https://example.xyz/f",
            noCache: false,
            type: 'ajax',
            pageParam: 'pageIndex',
    
            actionMethods: {
                create: 'POST',
                read: 'POST',
                update: 'POST',
                destroy: 'POST'
            },
            headers: {
                'Content-Type': 'application/json'
            },
            extraParams: {
                "pagingId": uuid //extra parameter
            }
        }
    });
    

    【讨论】:

    • 您好,非常感谢您的回答。但是我还有另一个问题,如果我想从我以前的预取数据中传递 pagingId。怎么做?我的意思是,例如返回的数据是:{ items: [], totalItems: 123, pagingID: uuid from backend } 我想将此 pagingID 传递回服务调用。我尝试使用事件 store.on('prefetch'),但我找不到访问 rootProperty 之外的数据的方法。 :(
    • 您可以通过store.lastOptions.params获取最后一个参数
    • 对不起,如果我的尝试听起来很愚蠢。有人告诉我 elasticSearch 就是这样工作的。它需要 pagingID 来知道要返回的页面的顺序。因此,我们尝试将 pagingID 从后端传递到 GUI,然后 GUI 在每次预取时将其传递回后端。 (每个页面的 pagingID 都会不同)
    猜你喜欢
    • 2021-08-23
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2011-08-09
    相关资源
    最近更新 更多