Javascript 如何解决ExtJS 4.1组合框页面大小错误?
我们有一个ExtJS v4.1组合框,我们将其绑定到一个存储,并将其pageSize配置设置为:Javascript 如何解决ExtJS 4.1组合框页面大小错误?,javascript,extjs,extjs4.1,Javascript,Extjs,Extjs4.1,我们有一个ExtJS v4.1组合框,我们将其绑定到一个存储,并将其pageSize配置设置为: var myStore = Ext.create('Ext.data.Store', { model: 'User', remoteFilter: true, remotePaging: true, autoLoad: true proxy: { type: 'ajax', url: '/users.json',
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
remoteFilter: true,
remotePaging: true,
autoLoad: true
proxy: {
type: 'ajax',
url: '/users.json',
reader: {
type: 'json',
root: 'users'
}
},
pageSize: 50, // <= store pageSize
});
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose',
store: myStore,
queryMode: 'remote',
displayField: 'Name',
valueField: 'Id',
pageSize: 20 // <= combobo pageSize
});
var myStore=Ext.create('Ext.data.Store'{
模型:“用户”,
remoteFilter:true,
remotePaging:对,
自动加载:正确
代理:{
键入:“ajax”,
url:“/users.json”,
读者:{
键入:“json”,
root:'用户'
}
},
pageSize:50,//comboBox中的pageSize实际上是一个真/假值,尽管有文档说明
在javascript中,如果为0,则分页工具栏处于关闭状态,否则处于打开状态
这是一个共享商店,还是仅仅用于组合框
如果是共享的,则需要保存存储区的pagesize,必要时为组合更改它,然后重新设置:
{
xtype: 'combobox',
width: 350,
store: new MyStore(),
fieldLabel: 'Label',
pageSize: 2,
listeners:{
beforequery:function(queryEvent){
var combo = queryEvent.combo;
var store = combo.getStore();
var oldPageSize = store.pageSize;
store.on('load', function(){
this.pageSize = oldPageSize;
});
store.pageSize = combo.pageSize;
}
}
}
另一种方法是在实例化时将parameter/config添加到存储中
store: new Ext.create('MyStore',{pageSize:20}),
pageSize: true
谢谢neil,好主意。我通过覆盖非共享存储解决了非共享存储。但我认为您的解决方案对共享存储和非共享存储都有效。对吗?谢谢,但是当我们在组合配置上使用sencha mvc时,我们只写存储名称,不实例化它。您有解决方案吗?是的,我也使用sencha mvc。如果您有Store
,例如Ext.define('MyCompany.Store.MyStore',{…})
。我们可以在组合中编写Store:new Ext.create('MyCompany.Store.MyStore',{PageSize:12})