ExtJs 组合框分页工具栏属性

Posted

技术标签:

【中文标题】ExtJs 组合框分页工具栏属性【英文标题】:ExtJs combobox pagingtoolbar properties 【发布时间】:2014-06-23 15:53:50 【问题描述】:

我在网格面板编辑器单元格中有带有远程存储的组合框(我使用 rowEditing 插件)。通过使用组合框的“pageSize”属性,我在展开的组合框底部有分页工具栏。

示例: http://docs.sencha.com/extjs/4.2.2/#!/example/form/forum-search.html

但是我需要更改这个分页工具栏的一些属性,例如“beforePageText”、“afterPageText”、“displayMsg”等。在网格面板中,我可以添加停靠项并设置任何属性,但是组合框呢?它没有配置。

感谢所有回复和帮助。

var store = Ext.create('Ext.data.ArrayStore', 
                        fields: ['ID', 'NAME'],
                        pageSize: 10,
                        autoLoad: false,
                        proxy: 
                            type: 'ajax',
                            url: 'someurl'
                            reader: 
                                type: 'json',
                                root: 'data'
                            
                        
                    );

//And properties of my column editor

gridColumn.editor.xtype = 'combobox';
gridColumn.editor.store = store;
//with this we have pagingtoolbar at the bottom of combobox
gridColumn.editor.pageSize = 20;
gridColumn.editor.valueField = 'ID';
gridColumn.editor.displayField = 'ID';

【问题讨论】:

【参考方案1】:

不幸的是,分页工具栏的配置并不容易。分页是作为BoundList 创建(即组合选择器)的一部分创建的,并且不支持任何配置选项。见BoundList来源:

createPagingToolbar: function() 
    return Ext.widget('pagingtoolbar', 
        id: this.id + '-paging-toolbar',
        pageSize: this.pageSize,
        store: this.dataSource,
        border: false,
        ownerCt: this,
        ownerLayout: this.getComponentLayout()
    );

您可以在组合上配置自己的picker,但它没有记录配置选项,或者您可以覆盖createPicker() 方法 - 也没有记录。

【讨论】:

感谢您的回答。请告诉我为什么我不能只覆盖“createPagingToolbar”函数? 当然可以,但是这样做会为所有组合更改它 - 如果您愿意,一切都很好。如果您只希望它用于一个或多个组合,那么自己的选择器或 createPicker 的覆盖更好。 但是覆盖“createPicker”也会改变所有的组合框,不是吗?我的意思是像这样的覆盖Ext.define('ExtApp.form.field.ComboBox', override: 'Ext.form.field.ComboBox', createPicker: function () //override ); 好吧,你可以在每个需要特殊分页的组合上定义方法createPicker,而不是像上面那样全局。

以上是关于ExtJs 组合框分页工具栏属性的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 组合框根据属性显示商店记录

extjs 表单元素中的 Extjs 组合框在禁用时未灰显

ExtJS 组合框错误:无法读取未定义的属性“存储”

ExtJS 5 组合框 - 提交值和文本

extjs:加载时如何设置组合框的值

在 ExtJs 中本地过滤组合框远程存储