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 を使用するページング ツールバーには当てはまらないと思います。これについては間違っているかもしれませんが、extraparams を使用していて問題なく動作します。

于 2012-08-06T12:18:23.980 に答える