我们先创建一个带几个选项的树:
var root = new Ext.tree.TreeNode({ text: '选项', allowDrag: false, allowDrop: false }); root.appendChild(new Ext.tree.TreeNode({ id: 1, text: '选项一', allowDrag: false }), new Ext.tree.TreeNode({ id: 2, text: '选项二', allowDrag: false }), new Ext.tree.TreeNode({ id: 3, text: '选项三', allowDrag: false }), new Ext.tree.TreeNode({ id: 4, text: '选项四', allowDrag: false })); var tree = new Ext.tree.TreePanel({ style: 'margin:20px 0 0 20px', title: '选项列表', width: 200, height: 300, root: root }) tree.render(document.body); root.expand(); |
代码里先创建了一个树节点root,这个将作为树的根节点,然后加入了id分别为1、2、3、4的子节点,这4个子节点就是combobox选择项,id是combobox的提交值,text是显示值。
下面创建一个combobox,:
var combo = new Ext.form.ComboBox({ |
combobox使用了SimpleStore作为它的sotre,SimpleStore定义了id和text两个字段,id作为combobox的值字段(valueField :"id"),text作为combobox的显示字段(displayField: "text")。Combobox的操作模式是本地模式(mode: 'local')。
下面创建一个formpanel,将combobox放到formpanel里。还定义一个“改变选项”按钮来改变combobox的选择项。
var simpleForm = new Ext.FormPanel({ |
我们先来测试一下页面。页面加载完后,combobox是没有选择项的,我们单击“改变选项”按钮,就有选择项了。
我们来分析一下按钮的单击事件:
var data = []; |
在第1行,首先定义了一个空数组data。在第2行清理combobox的值状态,避免当前选择值不存在,不过你也可以保留,不执行这句。第3和6行通过一循环,遍历树根节点root的子节点,第4行取得一个子节点,在第5行将子节点的id和text组成一个数组增加到data数组中。在第7行将数据加载到combobox的store中。
是不是很简单?呵呵。希望本文能给大家一下帮助,多谢!
本文的完整代码:
<!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
单击这里可下载本问例子。
注:这次只单独打包了本例子的html文件,大家注意一下js和css的路径就可以了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1814139
新闻热点
疑难解答