Ext中下拉列表ComboBox组件store数据格式用法介绍
文件大小: 33k
源码售价: 10 个金币 积分规则     积分充值
资源说明:在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不仅可以提供丰富的用户交互体验,还能灵活地与服务器进行数据交换,满足复杂的数据展示和管理需求。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。