extjs使用分页按钮传递网格的额外参数

时间:2011-06-19 17:32:15

标签: extjs grid pagination

我有问题。我有getAllJobsControllerUrl()函数,它返回具有特定参数的URL:

        proxy: new Ext.data.ScriptTagProxy({
                      url: getAllJobsControllerUrl(),
                      method : 'GET'
        })

所有与网格有关的代码:

   var store = new Ext.data.JsonStore({
        root: 'jobs',
        totalProperty: 'totalCount',
        fields: [ 

                  {firld description}],

        proxy: new Ext.data.ScriptTagProxy({
                      url: getAllJobsControllerUrl(),
                      method : 'GET'
        })
    });


    var grid = new Ext.grid.GridPanel({
        id: 'mainGrid',
        el:'mainPageGrid',
        autoWidth: true,
        store:store,
        cm:cm,
        viewConfig:{
            forceFit:true
        },
        width :1000,
        height:500,
        loadMask:true,
        frame:false,

        bbar: new Ext.PagingToolbar({
            id : 'mainGridPaginator',
            store:store,
            pageSize:10,
            displayMsg: '{0} - {1} of {2} results',
            emptyMsg:'No results found for your search criterion',
            displayInfo:true
        }),

        tbar:tabBar
    });

问题/问题:当我使用getAllJobsControllerUrl()创建Ajax请求然后重新加载存储时,我正在向服务器发送正确的请求字符串。

但是当我尝试使用分页按钮(网格底部的'< - '和' - >')时,似乎我正在发送首次访问时形成一次的请求字符串然后它不会修改。

F1:)

添加了:

function getAllJobsControllerUrl() {
    return '../../statusList/getJobs/search-' + searchType + '-' + searchValue + 
            '/sort-' + sortName + '-' + sortOrder + 
            '/filterSd-' + filterSubmittedDate +
            '/filterSt-' + filterStatus +
            '/filterUn-' + filterUserName +
            '/filterJn-' + filterJobName
}

2 个答案:

答案 0 :(得分:3)

感谢大家帮助我。 我已将我的代码迁移到extjs 4.0并决定创建额外的参数,这些参数现在正在为我工​​作

            store : store = new Ext.data.JsonStore({
                fields : [....],
                ....
                listeners: {
                    'beforeload': function(store, options) {
                        store.proxy.extraParams.param1='val1';
                        store.proxy.extraParams.param2='val2';
                    },

所以,结果我收到了关注请求:

http://myip:8080/myproject/statusList/getJobs?param1=val1&param2=val2
祝你好运!

答案 1 :(得分:0)

您需要在加载前使用新网址更新代理。最好的方法是使用商店的beforeload活动。

将商店定义更改为


var store = new Ext.data.JsonStore({
    root: 'jobs',
    totalProperty: 'totalCount',
    fields: [ 

          {firld description}],

proxy: new Ext.data.ScriptTagProxy({
              url: getAllJobsControllerUrl(),
              method : 'GET'
}),

listeners:{
    beforeload:function(store, options){
        store.proxy.setUrl(getAllJobsControllerUrl());
    }
}

});