Javascript 如何解决ExtJS 4.1组合框页面大小错误?

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',

我们有一个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',
        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})