我正在使用extjs(4.1.0)MVC。 我有一个自定义网格设置与组合框过滤器,datepicker过滤器等。我附加从控制器,视图和存储的片段。
我的回复与模型不同,因此,通过覆盖故事代理的read()来拦截响应。 此外,数据需要作为有效负载中的Json数据发送,因此还会覆盖存储代理的buildRequest()以将json数据添加到请求中。 (所有类型,分页参数也在这里添加) 除此之外 - 视图具有无限滚动。
视图第一次加载正常。但是在组合框更改/日期更改时,将重新加载存储,并将这些作为json params传递给请求。
我在XHR中看到了firebug / chrome中的响应,但网格不断显示加载掩码,等待加载..请帮助解决可能出错的问题。
Ext.define('Message.store.ListingStore', {
extend: 'Ext.data.Store',
model: 'Message.model.ListingModel',
autoLoad: true,
remoteSort: true,
purgePageCount:0,
buffered: true,....
.......
proxy: {
type: 'ajax',
actionMethods: {
read: 'POST'
},
url: 'http://localhost:8080
buildRequest: function(operation) {
Ext.apply(request, {
params: null,
jsonData: Ext.apply(request.params, {
page: operation.page,
start: operation.start,
limit: operation.limit,
catId:catValue,
sort:operation.sorters[0].property,
dir:operation.sorters[0].direction
})
});
........return request;
}
root: 'data',
totalProperty:'total',
successProperty :'success'
},
.....
});
//controller
Ext.define('Message.controller.Listing', {
extend:'Ext.app.Controller',
stores: ['ListingStore','SubscriptionStore','SubCategoryMasterStore','PriorityMasterStore'],
models: ['ListingModel'],
views: [
'MessageListing'
],
init:function () {
var controller = this;
'messagelisting combo' : {
select : this.handleComboSelect
},
'messagelisting datefield' : {
select : this.handleDateSelect
},
.....
handleComboSelect : function(gridview, el, rowIndex, colIndex, e, rec, rowEl) {
this.getStore('ListingStore').load();
},
handleDateSelect: function(gridview, el, rowIndex, colIndex, e, rec, rowEl) {
this.getStore('ListingStore').load({callback: function(response){
}});
这是一个非常复杂的案例,所以我无法发布整个代码。 谢谢。
答案 0 :(得分:0)