日期:2014-05-16 浏览次数:20446 次
动起来的Combobox
?
1. 创建一个html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>Insert title here</title> <link rel="stylesheet" type="text/css" href="css/resources/css/ext-all.css" /> <script type="text/javascript" src="js/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="js/ext-all.js"></script> <script type="text/javascript" src="js/combobox.js"></script> </head> <body> ComboBox Test </body> </html>
?
?
2. 创建生成combobox的js
Ext.onReady(function() { /**具体的数据存储*/ var cities=[ [1,"西安市"], [2,"咸阳市"] ]; var proxy1=new Ext.data.MemoryProxy(cities); /**对内存记录的数据定义*/ var City=Ext.data.Record.create([ {name:"cid",type:"int",mapping:0}, {name:"cname",type:"string",mapping:1} ]); var reader1=new Ext.data.ArrayReader({},City); /**数据的存储地,是数据和组件的纽带*/ var store1=new Ext.data.Store({ proxy:proxy1, reader:reader1, autoLoad:true }); var combobox=new Ext.form.ComboBox({ renderTo:Ext.getBody(), triggerAction:"all", store:store1, displayField:"cname", valueFeild:"cid", mode:"local", emptyText:"请选择西安市" }); var btn3 = new Ext.Button({ renderTo : Ext.getBody(), text : "获取Combox值", width : "200", handler: getComValue }); function getComValue(){ Ext.MessageBox.alert("ComboxValue","实际值是:" +combobox.getValue()+"显示值是:"+combobox.getRawValue()) }; });
?
小结:
上面的例子comobox的数据来源于自定义的数组。 组件的数据获取分以下步骤:
1.?proxy 目的就是分离数据的来源与展现。 无论数据时从文件或者远程接口或者自定义都有代理全权负责处理?
2. reader 目的是定义数据的结构,让数据规范化 是将零散数据规范化的工具,此处定义了数据的格式。
3. store 是对代理和reader的汇聚是与组件直接通信的 数据存储。
?
?