资源说明:在ExtJS中,下拉列表ComboBox组件是用于展示可选列表的交互控件,常用于表单输入。它提供了多种数据绑定方式,包括本地数据和远程数据。本篇文章将详细讲解Ext中下拉列表ComboBox组件的store数据格式及其用法。
ComboBox的store数据格式有两种常见的方式:
1. **数组格式**:
```javascript
store : [['11', '2011'], ['12', '2012'], ['13', '2013']]
```
这种格式中,每个元素都是一个包含两个值的数组,第一个值是提交时的值(valueField),第二个值是显示在下拉列表中的文本(displayField)。例如,上述代码表示下拉列表中有三个选项,分别是2011、2012和2013,对应的提交值为'11'、'12'和'13'。
2. **单值数组格式**:
```javascript
store : [2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018]
```
当没有指定value和text时,这种格式默认提交值与显示值相同。在这种情况下,如果选择2012,那么提交的数据也将是2012。
接下来,我们讨论更正规的数据加载方式,即从服务器获取数据字典来填充ComboBox:
```javascript
var proj_main_store = new Ext.data.JsonStore({
url : "************", // 服务器接口URL
fields : ['TEXT', 'VALUE'], // 定义字段名,'TEXT'对应显示文本,'VALUE'对应提交值
root : "objs", // JSON响应数据中包含数据的根节点
baseParams : {
"obj/dicttypeid" : "BM_IMPORTANT_PROJ" // 请求参数
}
});
proj_main_store.addListener("load", function(){
proj_main_store.insert(0, new Ext.data.Record({ 'TEXT' : '全部', 'VALUE' : "" })); // 加载前插入“全部”选项
});
var proj_main_type = new Ext.form.ComboBox({
fieldLabel : '重点工程',
anchor : anchor_w,
mode : 'remote', // 远程模式,从服务器加载数据
triggerAction : 'all',
selectOnFocus : true,
forceSelection : true,
editable : false,
valueField : 'VALUE', // 指定提交的字段名
displayField : 'TEXT', // 指定显示的字段名
store : proj_main_store // 使用之前定义的JsonStore
});
```
在这个例子中,`JsonStore`被用来从服务器获取JSON格式的数据。`fields`定义了数据对象的属性,`root`指定了JSON响应中数据数组的位置,`baseParams`用于设置请求的参数。当数据加载完成后,会触发“load”事件,此时我们可以在此事件处理函数中添加额外的操作,比如在数据前面插入“全部”选项。将JsonStore实例赋值给ComboBox的`store`属性,完成数据绑定。
在实际应用中,根据需求,你可以选择合适的数据格式和数据加载方式来创建和配置ComboBox组件。通过这种方式,ComboBox不仅可以提供丰富的用户交互体验,还能灵活地与服务器进行数据交换,满足复杂的数据展示和管理需求。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。