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;
}
});
分享到:
相关推荐
在EXTJS框架中,"多选下拉框"(Multi-Select ComboBox)是一种常见的组件,它允许用户在下拉列表中选择多个选项。EXTJS 3.*版本也提供了这种功能,使得开发者能够创建功能丰富的界面,提升用户体验。下面将详细解释...
在EXTJS4中,`ComboBox` 是一个非常常用的组件,它提供了一个下拉选择框的功能。在某些场景下,我们可能需要在下拉菜单中展示更丰富的信息,比如表格数据,这时就可以使用 `GridComboBox`。`GridComboBox` 结合了 `...
4. **模板**:为了显示多选的结果,可能需要自定义ComboBox的模板,以展示已选项目的列表。 5. **事件处理**:添加适当的事件监听器,例如`select`事件,以便在用户选择或取消选择选项时执行相应的操作。 6. **...
在这个场景中,我们关注的是在EXTJS的Combobox(下拉框)组件中实现分页和动态加载数据的功能。Combobox通常用于展示有限数量的选项,但在大数据集的情况下,一次性加载所有数据可能导致页面性能下降。因此,引入...
在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...
在ExtJS6中,下拉列表(ComboBox)是一种常见的组件,用于提供用户可以选择的预定义选项。这个框架提供了丰富的功能和定制性,使得下拉列表不仅能够简单地显示一组静态选项,还能与数据源进行联动,展示动态加载的...
ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)---ExtJS4图片验证码的实现 ExtJS4学习笔记(十一)---TabPanel ExtJS4学习笔记(十三)---上传...
在ExtJS中,下拉框(ComboBox)是一种常用的UI组件,通常用于展示可选择的列表项。然而,标准的下拉框只支持单选模式,如果需要实现多选功能,就需要进行一定的扩展。本文将深入探讨如何在ExtJS 4中实现下拉多选扩展...
在给定的“Extjs4 combogrid扩展”中,我们主要关注的是如何将传统的下拉框(combo)扩展为同时支持网格(grid)显示的功能。 标题中的“Extjs4 combogrid扩展”意味着我们要在ExtJS 4框架内,改造原有的 Combo ...
而"Ext带图标Combobox"(Ext IconCombobox)是Ext JS中的一个特色组件,它是Combobox(下拉框)与图标相结合的一种扩展形式,为用户提供了更加直观且美观的交互体验。 **1. Ext Combobox基础** 首先,我们需要了解...
2. **ComboBox**: `Ext.form.ComboBox`是EXTJS中的下拉框组件,用于创建具有下拉选项的输入字段。在这里,我们定义了一个ComboBox,设置了它的各种属性如`id: "cb"`(必需,用于后续操作),`typeAhead: true`(允许...
4. **Combobox Tree组件**:在ExtJS中,Combobox是一个下拉框组件,它允许用户从预定义的列表中选择一个值。将树形结构与Combobox结合,就形成了Combobox Tree。这个组件需要自定义配置,包括树的数据源、显示模式...
MultiComboBox是ExtJS中的一个自定义组件,它扩展了基础的ComboBox类,增加了多选的功能。默认情况下,ComboBox只允许用户选择一个值,而MultiComboBox则允许用户选择多个值,这些值通常以复选框的形式展示。 要...
ExtJS 2.0提供了强大的表单组件,如文本字段(TextField)、复选框(Checkbox)、下拉框(ComboBox)等,以及表单提交、验证等功能。理解和熟练运用表单组件,能够创建功能完善的用户输入界面,并实现数据的验证和...
在ExtJS中,这通常通过组合框(ComboBox)组件和数据存储(Store)配合实现。每个级别的下拉框都有自己的Store,当上一级选择改变时,可以通过监听事件并更新Store来刷新下拉列表内容。 开发这样的控件需要掌握以下...
例如,你可以有文本框(TextField)用于关键词输入,下拉框(ComboBox)用于选择类别,日期选择器(DateField)用于指定时间范围等。表单中的每个字段都可以设置相应的事件监听器,如“change”事件,当用户修改输入...
Combogrid控件结合了combobox(下拉框)和grid(数据网格)的优点,用户可以在输入框内搜索关键字,同时在下拉区域看到匹配的数据列表,列表以表格的形式展示,便于用户快速浏览和选择。 在ExtJS 5中,Combogrid...
ExtJS是一种基于JavaScript的前端开发框架,用于构建富互联网应用程序(RIA)。它的核心特性包括强大的组件模型、数据绑定、丰富的用户界面控件以及强大的图表功能。以下是对标题和描述中涉及的知识点的详细说明: ...
### Extjs中文教程知识点梳理 #### 一、Extjs简介及环境搭建 - **Extjs**是一种基于JavaScript的开源框架,用于构建现代化的Web应用程序。它提供了丰富的UI组件库、强大的数据处理能力和灵活的布局管理机制。 - **...