项目中需要用到给combobox赋初始值的问题,该初始值并不确定,想控制为store的第一行数据。
试了一些方法,比如监听combobox中的render事件,但是由于是异步加载,在render的时候,数据并未获得。最后改为监听store的load事件搞定。
代码如下:
/**
* @note 获取枚举值
* @params enumType 数据库中枚举值类型 comId 控件comboboxID isNeed 第一行数据是否需要默认展示(1-展示)
* @time 2012-02-23
* **/
disn.utils.getEnums=function(enumType,comId,isNeed){
var myEnums = new Ext.data.JsonStore({
url:BIZCTX_PATH+"/favtype!listEnumDict.action?enumType="+enumType,
root: 'listEnumDict',
autoLoad:true, //
fields: [
{name:'value',mapping:'enumValue'},
{name:'text',mapping:'enumName'}
],
listeners: {
load : function(combo) {//监听load事件,为combobox赋初始值,store第一行
if(isNeed && isNeed == "1"){
//store.each(function(record){});//如果不确定需要默认展示的值,可以先进行store的遍历。 Ext.getCmp(comId).setValue(this.data.items[0].data.value);
}
}
}
});
return myEnums;
};
var layoutPanel1 = ColumnPanelHelper.createLayoutPanel(2);
layoutPanel1.push({
xtype: "combo",
labelStyle: "width:130px;",
width: 150,
hasAll:true,
codeType:"city",
fieldLabel: "填报城市",
store:disn.utils.getEnums('CITY_ID','favIndex.cityId','1'),
mode:"local",
displayField:"text",
valueField:"value",
triggerAction: "all",
id:"favIndex.cityId",
name:"favIndex.cityId",
readOnly:true
});
分享到:
相关推荐
1. **store**:这是comboBox的数据源,可以是一个Ext.data.Store对象。在远程模式下,store通常配置为一个远程数据存储,通过Ajax或proxy与服务器进行通信。 2. **displayField**:定义显示在comboBox输入框中的...
通常,这会包括创建ComboBox的配置对象,定义数据源(可能是`store`),以及可能的事件监听器来处理用户交互。例如,可能有监听用户输入的`keyup`事件,根据输入的文本动态过滤下拉列表的显示。 源码可能会包含以下...
本篇文章将详细讲解Ext中下拉列表ComboBox组件的store数据格式及其用法。 首先,ComboBox的store数据格式有两种常见的方式: 1. **数组格式**: ```javascript store : [['11', '2011'], ['12', '2012'], ['13',...
- `store`:用于存储下拉选项的数据源,可以是数组或Ext.data.Store对象。 2. **多选事件处理**: - `select`事件:在多选模式下,当用户添加或移除选项时,这个事件会被触发。我们需要监听此事件来处理值的改变...
首先,Ext多选下拉框是基于Ext.form.field.ComboBox构建的,通过扩展其默认行为来支持多选。它通常包含一个可输入的文本字段和一个下拉列表,用户可以从中选择多个选项。在创建多选下拉框时,我们需要设置`...
1. `store`:这是Combobox的数据源,通常是一个Ext.data.Store对象,包含了待选项的数据。你需要设置好`fields`来定义每个选项的结构,并提供数据源URL或本地数据。 2. `queryMode`:默认情况下,Combobox的查询...
即使使用 XTemplate 来替换默认的数据展示方式,仍然需要定义 `store` 和 `mode` 属性,这是因为 `ComboBox` 的内部实现依赖于这些属性的存在。如果不设置这些属性,`ComboBox` 可能无法正确渲染。 - **`store`**...
你可以通过设置`store`属性来指定下拉列表的数据源,通常是一个`Ext.data.Store`对象,包含一组记录。`displayField`属性定义了在下拉列表中显示的字段。 2. **多选配置**: 要将`ComboBox`转换为多选下拉框,你需要...
在某些场景下,我们可能需要在`ComboBox`中手动添加一个空选项或者默认选项,例如“所有”、“请选择”等,以便让用户明确地选择他们想要的数据项。 #### 一、问题背景 在给定的示例中,开发者希望在`ComboBox`中...
ComboBox的默认行为是弹出一个包含选项的列表,而你想要实现的是当用户点击下拉按钮时,展示一个Grid,这样可以展示更多的信息并且支持更复杂的交互。这种自定义的行为需要对EXTJS4的事件处理和组件嵌套有深入的理解...
- 在ExtJS中,当表单提交时,Combobox默认会发送valueField的值。因此,后台接收到的将是如"1"或"2"这样的值,而不是"男"或"女"。 - 如果需要将displayField值用于用户交互,可以在后台根据接收到的valueField查询...
this.cboTheme = new Ext.form.ComboBox({ id: 'ux-startcombo-theme', store: themestore, valueField: 'File', displayField: 'Name', mode: 'local', typeAhead: true, editable: false, triggerAction:...
数据视图类主要用于将`Store`中的数据以可视化的方式展示出来。常见的数据视图类包括`Ext.DataView`、`Ext.grid.GridPanel`、`Ext.form.Field`等。 - **Ext.DataView**:这是一个比较特殊的视图类,因为它没有预设...
1. **配置store**:设置ComboBox的数据源,可以是本地数据或远程数据。多选意味着需要管理多个值,所以数据模型(Model)可能需要包含一个数组字段来存储选中的值。 2. **定义displayField与valueField**:...
在IT行业中,分页是网页或应用程序中常见的一种数据展示方式,特别是在处理大量数据时,分页能够提高用户体验,避免一次性加载过多数据导致页面卡顿。`EXT`是一个流行的JavaScript库,主要用于构建富客户端应用程序...
Combobox通常用于展示有限数量的选项,但在大数据集的情况下,一次性加载所有数据可能导致页面性能下降。因此,引入分页机制可以有效地解决这个问题,只在用户需要时加载更多数据。 首先,我们需要了解EXTJS 4.2中...
**Grid** 和 **ComboBox** 等组件都是基于Ext.data进行数据操作的。它们利用这些核心组件来实现诸如异步加载、类型转换、分页等功能。 #### 二、数据格式和支持 Ext.data支持多种数据格式,包括但不限于: - **...
在EXTJS4中,实现一个下拉树(Combobox Tree)并支持多选和复选功能,主要是通过自定义组件(Ext.define)来完成的。这个组件继承自EXTJS的Picker字段(Ext.form.field.Picker),并添加了树形结构和复选功能。以下...