2013-12-13 3 views
0

У меня есть три параметра startdate, enddate и name, которые я должен отправить на сервер, чтобы получить ответ Json. Я показываю ответ в GridPanel.Extjs-Paging Toolbar Следующая страница и предыдущая страница Отключить

Мой Ajax запрос выглядит следующим образом:

FilterOperSet: function(button){ 
var win = button.up('window'); 
var form = win.down('form'); 
var start = form.getForm().findField('startDate').getSubmitValue(); 
var end = form.getForm().findField('endDate').getSubmitValue(); 
var act = form.getForm().findField('actor').getSubmitValue(); 
Ext.Ajax.request({ 
url: 'ListData', 
params: { type: 'recordedRequest', startDate: start, 
       endDate: end, actor: act, start:0,limit:10 }, 

success: function(response) { 
var json = Ext.decode(response.responseText); 
var mystore = Ext.data.StoreManager.lookup('RecordedRequestStore'); 
mystore.loadData(json.recordedRequests); 
      }, 
      scope: this}); 
} 

У меня есть кнопка, когда пользователь вводит значения STARTDATE, EndDate и имя и нажимает на кнопку выше слушатель отправляет их в качестве параметров вместе с началом и предела для пейджинга и ответа захватывается и сохраняется в gridpanel.

Моя проблема с панели подкачки: Я мог видеть следующее в качестве ответа

recordedRequests 
    // has some meta data here 

success 
true 

total 
1339 

Но мой инструмент подкачки штрих-шоу только одна страница, а в нижней части говорит 0 из 0 и направо ничего, чтобы отобразить. Infact он должен сказать 1 из 14 и должен позволить мне перейти через следующие страницы.

2) Также, когда я нажимаю кнопку обновления, он вызывает мой магазин и вызывает сервер, но я хочу сделать запрос ajax с именем startdate, enddate и name в качестве параметров (это будет именно то, что делает моя кнопка выше listerner)

Мой магазин выглядит следующим образом:

автозагрузку: ложь, remoteFilter: правда, буферном: ложь, PAGESIZE: 10, // leadingBufferZone: 1000,

fields:['start', 'end', 'actor','serviceOp'], 

proxy: { 
    type: 'ajax', 
    url: 'ListData', 
    store: 'RecordedRequestStore', 
    startParam:'start', 
    limitParam:'limit', 
    pageParam:'page', 
    reader: { 
     type: 'json', 
     root: 'recordedRequests', 
     successProperty: 'success', 
     totalProperty: 'total' 
    }, 

    extraParams: { 
     'type': 'recordedRequest', 
    }, 

    //sends single sort as multi parameter 
    simpleSortMode: true, 

    // Parameter name to send filtering information in 
    filterParam: 'query', 

    // The PHP script just use query=<whatever> 
    encodeFilters: function(filters) { 
     return filters[0].value; 
    } 
}, 

listeners: { 
    filterchange: function(store, filters, options){ 
     console.log(filters) 
    }, 

    totalcountchange: function() { 
     console.log('update count: ') 
     //this.down('#status').update({count: store.getTotalCount()}); 
    } 
} 

Любая помощь будет иметь большое значение для меня. Заранее спасибо.

ответ

0

Вместо запроса Ajax. Я должен использовать

store.load (Params {вашего Params})

Для СледующаяСтраница и ПредыдущаяСтраницу я использовал beforeload слушатель для пользовательских параметров.

+0

Не могли бы вы показать пример своего слушателя? У меня похожие проблемы –

+0

Привет, Клей, можете ли вы сообщить мне, что у вас есть, и что именно означает слушатель? – user3093528

+0

Привет, спасибо за быстрый ответ. В основном у меня есть сетка, которая загружается из ответа JSON, но не ограничивает 'pageSize'. У меня есть подробный вопрос: http://stackoverflow.com/questions/22481633/paging-grid-displaying-all-records-ext-js/22485604?noredirect=1#comment34223737_22485604 –

Смежные вопросы