javascript - 如何解决 ExtJS 4.1 Combobox pageSize 错误?

标签 javascript extjs extjs4.1

我们有一个 ExtJS v4.1 组合框,我们已经将它绑定(bind)到一个商店并将其 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
});

作为documentation saysqueryMode='remote' 时,应该使用组合框的 pageSize 属性来过滤发送到服务器的 ajax 查询。但是我们看到的是相反的,它只是用来在组合框的底部显示一个分页工具栏(文档的第一条评论是这样说的)。

但在这种特定情况下,我们真正需要的是覆盖商店的 pageSize 属性,并使组合框的 pageSize 属性用于过滤 ajax 请求。

我们如何在组合框中实现/扩展这样的功能?我们如何在组合框中覆盖商店的 pageSize 属性?

最佳答案

comboBox 中的 pageSize 实际上是一个 true/false 值,尽管有文档。

在 javascript 中,如果为 0,则分页工具栏关闭,否则打开。

这是共享商店,还是仅用于组合框?

如果共享,那么您需要保存商店的页面大小,必要时为组合更改它,然后再次设置回来:

            {
                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;
                    }
                }
            }

关于javascript - 如何解决 ExtJS 4.1 Combobox pageSize 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164862/

相关文章:

javascript - ExtJS TypeError : item. onAdded 不是函数

javascript - 使用进度条添加短信

javascript - 验证字符串是否为有效的 JavaScript

javascript:交换 DOM 节点

javascript - ExtJS DateField 渲染太宽,IE8 中的错误?

extjs4.1 - 如何在 extjs 4.1 中使用 grid.getSelectionModel().select(Indexes) 选择多行

javascript - 如何降低 JavaScript 代码中的循环复杂度?

javascript - ExtJS:来自一个 AJAX 调用的多个 JsonStores?

php - extjs 4 使用 PHP 和 MySQL 在树面板中添加复选框

ExtJS 4.1 : How to combine local data with ajax loaded data in a single store?