0

我正在使用日期字段和组合框来选择加载商店。当商店加载到网格中时,我有一个分页工具栏。到现在为止还挺好。

当用户单击下一页时,分页工具栏不会从日期字段中发送数据。我读了一些关于 baseparams 的东西,但这不起作用。

我使用 EXTJS 4.1

这是我的商店:

    NL.commListDetails = new Ext.data.Store({
    model: 'stepDetails',
    pageSize: 20,
    loadMask: false,
    sortOnLoad: true,

    proxy: {
        type: 'ajax',
        url: detailURL,
        startParam: '',
        limitParam: '',
        pageParam: '',
        reader: {
            type: 'json',
            root: 'slaevents',
            totalProperty: 'slaevents[0].totalCount'
        }
    },
    baseParams: {fromDate:NL.startDate},
    autoLoad: false
});

这是分页工具栏

 bbar: Ext.create('Ext.PagingToolbar', {
        store: NL.commListDetails,
        displayInfo: true,
        displayMsg: 'Displaying record {0} - {1} of {2}',
        emptyMsg: "No records to display",

    }),

我需要发送 fromDate, endDate 和分页。都在 NL.startDate 和 NL.endDate 中可用。当我点击下一页时如何发送这个?

4

1 回答 1

1

商店没有 baseParams 的配置。要发送额外的参数,您应该使用 ajax 代理的 extraParams 配置。

proxy: {
        type: 'ajax',
        ....
        extraParams: {fromDate:NL.startDate},
        ..
    },

在创建商店时定义参数也意味着它们是静态的,因此如果您修改日期字段或组合框,它们不会改变......

因此,解决方法是监听组合框或日期字段上的更改事件并重置额外的参数:

change: function(this,value){
      NL.commListDetails.getProxy().getExtraParams().comboName = value;
 }

编辑 我的立场得到纠正。有一个 baseParams,但它在 elementloader 上,只有在直接调用 load 时才会调用,我认为使用 loadPage 的分页工具栏不是这种情况。我可能在这个问题上错了,但我使用的是额外参数,它工作正常。

于 2012-08-06T12:18:23.980 回答