extjs передает дополнительные параметры для сетки из-за кнопок пагинации - PullRequest
3 голосов
/ 19 июня 2011

У меня проблема.У меня есть 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
    });

Вопрос / Проблема: Когда я делаю Ajax Request с getAllJobsControllerUrl() и затем перезагрузите хранилище, я отправляю на сервер правильную строку запроса.

Но когда я пытаюсь использовать кнопки нумерации страниц («<-» и «->» внизу сетки),Кажется, я отправляю строку запроса, которая была сформирована один раз при первом доступе, а затем не изменяется.

F1:)

Добавлено:

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

Ответы [ 2 ]

3 голосов
/ 16 июля 2011

Спасибо всем за попытку помочь мне. Я перенес свой код в 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

Удачи!

0 голосов
/ 22 июня 2011

Вам необходимо обновить прокси с новым URL перед загрузкой. Лучший способ - использовать событие beforeload магазина.

Измените определение вашего магазина на


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

<pre><code>          {firld description}],

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

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

});

...