extjs4下拉框(ComboBox)无法正确分页解决方案

extjs4改动很大,bug也很多!
一直在踩雷的过程中……
本人目前版本为4.0.2a
问题:
下拉框的分页不能正确翻页,如下为出问题的代码:

{
name: 'submitterId',
fieldLabel: '提交人',
xtype: 'combo',
triggerAction: 'all',
queryMode: 'remote',
hiddenName : 'id',
minChars : 1,
queryParam: 'nickname',
store: submitterStore = Ext.create('Ext.data.Store', {
proxy: {
type: 'ajax',
url: 'saler/getQuerySalers.json',
method: 'POST',
reader: {
type: 'json',
totalProperty : 'page.totalCount',
root: 'page.result'
}
},
pageSize : 2,
fields :[{
name : 'id'
}, {
name : 'nickname'
}]
}),
valueField: 'id',
displayField: 'nickname',
listConfig : {
minWidth: 280
},
pageSize : 2
}


去国外论坛也没有找到好的解决方案,于是只能自己看源码找到问题所在,贴上解决代码,希望对大家有所帮助:

Ext.apply(Ext.form.field.ComboBox.prototype, {
doQuery: function(queryString, forceAll) {
queryString = queryString || '';
var me = this,
qe = {
query: queryString,
forceAll: forceAll,
combo: me,
cancel: false
},
store = me.store,
isLocalMode = me.queryMode === 'local';

if (me.fireEvent('beforequery', qe) === false || qe.cancel) {
return false;
}

queryString = qe.query;
forceAll = qe.forceAll;

if (forceAll || (queryString.length >= me.minChars)) {
me.expand();
if (!me.queryCaching || me.lastQuery !== queryString) {
me.lastQuery = queryString;
if (isLocalMode) {
if (forceAll) {
store.clearFilter();
} else {
store.clearFilter(true);
store.filter(me.displayField, queryString);
}
} else {
Ext.apply(store.getProxy().extraParams, me.getParams(queryString));
store.load();
}
}
if (me.getRawValue() !== me.getDisplayValue()) {
me.ignoreSelection++;
me.picker.getSelectionModel().deselectAll();
me.ignoreSelection--;
}

if (isLocalMode) {
me.doAutoSelect();
}
if (me.typeAhead) {
me.doTypeAhead();
}
}
return true;
}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值