`
ferly_j
  • 浏览: 5086 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    extjs多选下拉框

    在EXTJS框架中,"多选下拉框"(Multi-Select ComboBox)是一种常见的组件,它允许用户在下拉列表中选择多个选项。EXTJS 3.*版本也提供了这种功能,使得开发者能够创建功能丰富的界面,提升用户体验。下面将详细解释...

    Extjs4下拉菜单ComboBox中用Grid显示通用控件

    在EXTJS4中,`ComboBox` 是一个非常常用的组件,它提供了一个下拉选择框的功能。在某些场景下,我们可能需要在下拉菜单中展示更丰富的信息,比如表格数据,这时就可以使用 `GridComboBox`。`GridComboBox` 结合了 `...

    Ext combobox 下拉多选框带搜索功能

    4. **模板**:为了显示多选的结果,可能需要自定义ComboBox的模板,以展示已选项目的列表。 5. **事件处理**:添加适当的事件监听器,例如`select`事件,以便在用户选择或取消选择选项时执行相应的操作。 6. **...

    extjs4.2 分页combo动态条数 源码

    在这个场景中,我们关注的是在EXTJS的Combobox(下拉框)组件中实现分页和动态加载数据的功能。Combobox通常用于展示有限数量的选项,但在大数据集的情况下,一次性加载所有数据可能导致页面性能下降。因此,引入...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    Extjs6 下拉列表

    在ExtJS6中,下拉列表(ComboBox)是一种常见的组件,用于提供用户可以选择的预定义选项。这个框架提供了丰富的功能和定制性,使得下拉列表不仅能够简单地显示一组静态选项,还能与数据源进行联动,展示动态加载的...

    ExtJS4中文教程2 开发笔记 chm

    ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)---ExtJS4图片验证码的实现 ExtJS4学习笔记(十一)---TabPanel ExtJS4学习笔记(十三)---上传...

    Extjs4下拉多选扩展

    在ExtJS中,下拉框(ComboBox)是一种常用的UI组件,通常用于展示可选择的列表项。然而,标准的下拉框只支持单选模式,如果需要实现多选功能,就需要进行一定的扩展。本文将深入探讨如何在ExtJS 4中实现下拉多选扩展...

    Extjs4 combogrid扩展

    在给定的“Extjs4 combogrid扩展”中,我们主要关注的是如何将传统的下拉框(combo)扩展为同时支持网格(grid)显示的功能。 标题中的“Extjs4 combogrid扩展”意味着我们要在ExtJS 4框架内,改造原有的 Combo ...

    Ext带图标Combobox

    而"Ext带图标Combobox"(Ext IconCombobox)是Ext JS中的一个特色组件,它是Combobox(下拉框)与图标相结合的一种扩展形式,为用户提供了更加直观且美观的交互体验。 **1. Ext Combobox基础** 首先,我们需要了解...

    extjs中grid中嵌入动态combobox的应用

    2. **ComboBox**: `Ext.form.ComboBox`是EXTJS中的下拉框组件,用于创建具有下拉选项的输入字段。在这里,我们定义了一个ComboBox,设置了它的各种属性如`id: "cb"`(必需,用于后续操作),`typeAhead: true`(允许...

    Extjs下拉多选树

    4. **Combobox Tree组件**:在ExtJS中,Combobox是一个下拉框组件,它允许用户从预定义的列表中选择一个值。将树形结构与Combobox结合,就形成了Combobox Tree。这个组件需要自定义配置,包括树的数据源、显示模式...

    ext多选下拉列表的全选功能实现

    MultiComboBox是ExtJS中的一个自定义组件,它扩展了基础的ComboBox类,增加了多选的功能。默认情况下,ComboBox只允许用户选择一个值,而MultiComboBox则允许用户选择多个值,这些值通常以复选框的形式展示。 要...

    ExtJs2.0学习系列

    ExtJS 2.0提供了强大的表单组件,如文本字段(TextField)、复选框(Checkbox)、下拉框(ComboBox)等,以及表单提交、验证等功能。理解和熟练运用表单组件,能够创建功能完善的用户输入界面,并实现数据的验证和...

    extjs网页控件开发

    在ExtJS中,这通常通过组合框(ComboBox)组件和数据存储(Store)配合实现。每个级别的下拉框都有自己的Store,当上一级选择改变时,可以通过监听事件并更新Store来刷新下拉列表内容。 开发这样的控件需要掌握以下...

    extjs2.0 画的一个带查询条件和查询结果的页面

    例如,你可以有文本框(TextField)用于关键词输入,下拉框(ComboBox)用于选择类别,日期选择器(DateField)用于指定时间范围等。表单中的每个字段都可以设置相应的事件监听器,如“change”事件,当用户修改输入...

    extjs 5 combogrid控件

    Combogrid控件结合了combobox(下拉框)和grid(数据网格)的优点,用户可以在输入框内搜索关键字,同时在下拉区域看到匹配的数据列表,列表以表格的形式展示,便于用户快速浏览和选择。 在ExtJS 5中,Combogrid...

    Extjs的学习资料

    ExtJS是一种基于JavaScript的前端开发框架,用于构建富互联网应用程序(RIA)。它的核心特性包括强大的组件模型、数据绑定、丰富的用户界面控件以及强大的图表功能。以下是对标题和描述中涉及的知识点的详细说明: ...

    Extjs中文教程

    ### Extjs中文教程知识点梳理 #### 一、Extjs简介及环境搭建 - **Extjs**是一种基于JavaScript的开源框架,用于构建现代化的Web应用程序。它提供了丰富的UI组件库、强大的数据处理能力和灵活的布局管理机制。 - **...

Global site tag (gtag.js) - Google Analytics