1、ComboBox
var store = new Ext.data.SimpleStore({
fields :['id', 'text'],
data : [['1','一月'], ['2', '二月'], ['3', '三月'], ['4', '四月'],
['5','五月'], ['6', '六月'], ['7', '七月'], ['8', '八月'],
['9','九月'], ['10', '十月'], ['11', '十一月'], ['12', '十二月']]
});
var combo = new new Ext.form.ComboBox({
id :'myCombo',
name :'name',// name只是改下拉的名称
hiddenName :'id',// 提交到后台的input的name ,对应下面store里的''id,必须要填
width :80,
store :store,// 填充数据
emptyText :'请选择',
mode :'local',// 数据模式,local代表本地数据
readOnly :true,// 是否只读
value : '',//默认值,要设置为提交给后台的值,不要设置为显示文本,可选
triggerAction: 'all',// 显示所有下列数据,一定要设置属性triggerAction为all
allowBlank :false,// 不允许为空
valueField :'value',// 值,可选
displayField: 'text',// 显示文本 ,对应下面store里的'text',
editable :false,// 是否允许输入
forceSelection: true,// 必须选择一个选项
blankText :'请选择'// 该项如果没有选择,则提示错误信息,
listeners : {
afterRender : function(combo) {
var firstValue = store.reader.jsonData[0].text;
combo.setValue(firstValue);//同时下拉框会将与name为firstValue值对应的text显示
}
}
});
combo.on('load',function(){Ext.getCmp("myCombo").setValue(1);});
//combobox里的id一定要设置,并且不能和hiddenname的值相同,然后通过Ext.getCmp(id值).setValue(value)即可达到html里的select效果,注意这里的value表示的是store里的第几项!
其他说明:
- /*
- Ext.form.ComboBox配置表:
- allQuery String 发往服务器查询全部信息的查询字符串(默认'')
- displayField String 被显示在下拉框中字段名
- editable Boolean 设置下拉框是否可以编辑(默认true)
- forceSelection Boolean true输入值必须在列表中存在,false用户可输入任何值
- handleHeight Number 下拉列表中拖动手柄高(默认8,只在resizable配置为true生效)
- hiddenName String 隐藏字段名,创建一隐藏字段,存储所选值
- lazyInit Boolean 下拉框得到焦点才初始化下拉列表(默认true)
- lazyRender Boolean 延时渲染(默认false)
- listAlign String 列表对齐方式
- listClass String 应用于下拉列表元素的样式
- listWidth Number 下拉列表宽度
- loadingText String 当下拉框加载时显示提示信息(只有mode='remote'才生效)
- maxHeight Number 下拉框最大高度(默认300)
- minChars Number 下拉列表框自动选择用户要输入的最小字符数
- mode='remote'默认4
- mode='local'默认0
- editable=false使其自动失效
- minListWidth Number 设置下拉列表最小宽度,listWidth宽度大于最小宽度,该项被忽略
- mode String 设置下拉框数据读取模式
- local:读取本地数据
- remote:读取远程数据
- pageSize Number 设置下拉列表分页大小(只在mode='remote'生效)
- queryDelay Number 设置从键入字符结束到发送查询请求的延时
- mode="remote"默认500
- mode="local"默认10
- queryParam String 查询的名字,默认'query',被传递查询字符串中
- selectOnFocus Boolean 当获得焦点立刻选择一存在列表项(默认false),只在editable=true生效
- store Ext.data.Store 列表框绑定数据源(默认undefined)
- title String 列表框头
- transform Mixed 将页面以存在元素转换组合框
- triggerAction String 设置单击触发按钮执行默认操作,值'all'执行allQuery中查询,'query'
- typeAhead Boolean 设置输入中是否自动匹配剩余文本(默认false)
- typeAheadDelay Number 设置输入中自动匹配剩余文本延时时间(默认250)
- value String 初始化组合框中值
- valueField String 下拉框值自段
- valueNotFoundText String 值不存在时错误信息提示
- */
- Ext.onReady(function(){
- Ext.BLANK_IMAGE_URL = '../extjs2.0/resources/images/default/s.gif';
- var config = {
- fields:['province','post'],
- data:[['北京','10000'],['通县','101100'],['昌平','102200'],['大兴','102600'],
- ['密云','101500'],['延庆','102100'],['顺义','101300'],['怀柔','101400']]
- }
- //定义组合框中显示的数据源
- var store = new Ext.data.SimpleStore(config);
- config = {
- title:'Ext.form.ComboBox示例',
- labelSeparator:':',
- labelWidth:80,
- bodyStyle:'padding:5 5 5 5',
- frame:true,
- height:100,
- width:300,
- renderTo:'form',
- items:[
- new Ext.form.ComboBox({
- id:'post',
- fieldLabel:'邮政编码',
- triggerAction:'all', //单击触发按钮显示全部数据
- //设置数据源
- store:store,
- displayField:'province', //定义要显示的字段
- valueField:'post', //定义值字段
- mode:'local', //本地模式
- forceSelection:true, //要求输入的值必须在列表中存在
- resizable:true, //允许改变下拉列表大小
- typeAhead:true, //允许自动选择剩余部分文本
- value:'101100', //默认选择的项
- handelHeight:10 //下拉列表中拖动手柄的高度
- })
- ]
- }
- var form = new Ext.form.FormPanel(config);
- });
2、Window
一、属性
plain:布尔类型,true表示强制与背景色保持协调,默认值为false。
resizable:布尔类型,用户是否可以调整窗体大小,默认值为true表示可以调整大小。
maxinizable:布尔类型,true表示显示最大化按钮,默认值为false。
maximized:布尔类型,true表示显示窗体时将窗体最大化,默认值为false。
closable:布尔类型,true表示显示关闭按钮,默认值为true。
bodyStyle:与边框的间距,如:bodyStyle:"padding:3px"。
buttonAlign:窗体中button的对齐方式(left、center、right),默认值为right。
closeAction:"close"释放窗体所占内存,"hide"隐藏窗体,建议使用"hide"。
二、方法
show:打开窗体。
hide:隐藏窗体。
close:关闭窗体。
三、事件
show:打开窗体时触法。
hide:隐藏窗体时触法。
close:关闭窗体时触法。
3、NumberField
- new Ext.form.NumberField({
- fieldLabel:'整数',
- allowDecimals:false, //不允许输入小数
- nanText:'请输入有效整数', //无效数字提示
- allowNegative:false //不允许输入负数
- }),
- new Ext.form.NumberField({
- fieldLabel:'小数',
- decimalPrecision:2, //精确到小数点后2位(执行4舍5入)
- allowDecimals:true, //允许输入小数
- nanText:'请输入有效小数',
- allowNegative:false
- }),
- new Ext.form.NumberField({
- fieldLabel:'数字限制',
- nanText:'请输入有效数字',
- baseChars:'12345' //输入数字范围
- }),
- new Ext.form.NumberField({
- fieldLabel:'数字限制',
- maxValue:100, //最大值
- maxText:'值太大',
- minValue:50, //最小值
- minText:'值太小'
- })
- 隐藏上下递增箭头、键盘导航、鼠标滚轮
- var numberFiled = new Ext.form.NumberField({
- width: 200,
- name: 'numberField',
- value: 90,
- hideTrigger: true,
- keyNavEnabled: true,
- mouseWheelEnabled: true,
- step:5, //设置步进
- listeners: { //处理change事件
- change: function(field, value) {
- value = parseInt(value, 10);
- field.setValue(value + value % 2);
- }
- },
- renderTo: 'div1'
- });
4、Radio 、 Checkbox
- new Ext.form.Radio({
- name:'sex', //名字相同的单选框做为一组
- fieldLabel:'性别',
- boxLabel:'男'
- }),
- new Ext.form.Radio({
- name:'sex',
- fieldLabel:'性别',
- boxLabel:'女'
- }),
- new Ext.form.Checkbox({
- name:'swim',
- fieldLabel:'爱好',
- boxLabel:'游泳'
- }),
- new Ext.form.Checkbox({
- name:'walk',
- fieldLabel:'爱好',
- boxLabel:'散步'
- })
5、触发字段 TriggerField
- //触发字段
- new Ext.form.TriggerField({
- id:'memo', //id
- fieldLabel:'触发字段',
- hideTrigger:false, //显示触发按钮
- //单击触发按钮后事件处理
- onTriggerClick:function(e)
- {
- var memo = form.findById('memo'); //取得输入控件
- var config = {
- title:'触发字段值:',
- msg:memo.getValue(), //取得控件值
- width:200
- }
- Ext.Msg.show(config);
- }
- })
6、DateField
- /*
- Ext.form.DateField主要配置表:
- altFormats String 多个日期输入格式组成字符串,不同格式用|隔开
- disabledDates Array 禁止选择日期组成数组
- disabledDatesText String 禁止选择日期错误提示
- disabledDays Array 禁止星期组成数组
- disabledDaysText String 禁止星期错误提示
- format String 日期格式(默认'm/d/y')
- maxValue Date/String 允许选择最大日期
- maxText String 最大日期错误信息提示
- minValue Date/String 允许选择最小日期
- minText String 最小日期错误信息提示
- ["09/16/2003","03/08/2003"] 禁止选09/16/2003和03/08/2003
- ["03/08","09/16"] 禁止选每年03/08和09/16
- ["^03/08"] 匹配日期开始部分,禁止选每年03/08
- ["03/../2006"] 禁止选2006年3月的任何一天
- ["^03"] 禁止选任何3月的任何一天
- */
- new Ext.form.DateField({
- id:'date',
- format:'Y年m月d日',
- maxValue:'12/31/2008',
- maxText:'所选日期小于{0}',
- minValue:'01/01/2008',
- disabledDates:["2008年03月12日"], //禁止选择2008年03月12日
- width:150,
- fieldLabel:'日期选择'
7、TimeField
- /*
- Ext.form.TimeField主要配置表:
- altFormats String 多个时间格式组成的字符串
- format String 显示格式(默认'g:i:A')
- maxValue Date/String 列表中允许的最大时间
- maxText String 最大时间错误提示信息
- minValue Date/String 列表中允许的最小时间
- minText String 最小时间错误提示信息
- increment Number 时间列表中相邻项间时间间隔(默认15分钟)
- */
- new Ext.form.TimeField({
- id:'time',
- width:150,
- maxValue:'18:00', //最大时间
- maxText:'所选时间小于{0}',
- minValue:'10:00', //最小时间
- minText:'所选时间大于{0}',
- maxHeight:70,
- increment:60, //时间间隔
- format:'G时i分s秒', //时间格式
- invalidText:'时间格式无效',
- fieldLabel:'时间选择框'
- })
8、多行文本 TextArea
- /*
- Ext.form.TextArea独有配置表:
- preventScrollbars Boolean 文本溢出是否显示滚动条,true隐藏滚动条(默认false)
- */
- new Ext.form.TextArea({
- id:'memo',
- widht:150,
- fieldLabel:'备注'
- })
- //保存时事件处理
- function showValue()
- {
- var memo = form.findById('memo'); //取得输入框控件
- var config = {
- title:'TextArea值是:',
- msg:memo.getValue(), //取得控件值
- width:200
- }
- Ext.Msg.show(config);
- }
9、其他
-
- 重要按钮配置项 handler: renderTo:
- 取得控件及其值
- var memo = form.findById('memo');//取得输入控件
- alert(memo.getValue());//取得控件值
- NumberField控件
- 整数,小数,数字限制,值范围限制
- new Ext.form.NumberField({
- fieldLabel:'整数',
- allowDecimals : false,//不允许输入小数
- allowNegative : false,//不允许输入负数
- nanText :'请输入有效的整数',//无效数字提示
- }),
- new Ext.form.NumberField({
- fieldLabel:'小数',
- decimalPrecision : 2,//精确到小数点后两位
- allowDecimals : true,//允许输入小数
- nanText :'请输入有效的小数',//无效数字提示
- allowNegative :false//允许输入负数
- }),
- new Ext.form.NumberField({
- fieldLabel:'数字限制',
- baseChars :'12345'//输入数字范围
- }),
- new Ext.form.NumberField({
- fieldLabel:'数值限制',
- maxValue : 100,//最大值
- minValue : 50//最小值
- })
- TextArea 控件
- Radio或Checkbox用法 box类
- new Ext.form.Radio({
- name : 'sex',//名字相同的单选框会作为一组
- fieldLabel:'性别',
- boxLabel : '男'
- }),
- new Ext.form.Radio({
- name : 'sex',//名字相同的单选框会作为一组
- fieldLabel:'性别',
- boxLabel : '女'
- }),
- 在一排
- new Ext.form.Radio({
- name : 'sex',//名字相同的单选框会作为一组
- itemCls:'float-left',//向左浮动
- clearCls:'allow-float',//允许浮动
- fieldLabel:'性别',
- boxLabel : '男'
- }),
- new Ext.form.Radio({
- name : 'sex',//名字相同的单选框会作为一组
- clearCls:'stop-float',//阻止浮动
- hideLabel:true, //横排后隐藏标签
- boxLabel : '女'
- }),
- new Ext.form.Checkbox({
- name : 'swim',
- fieldLabel:'爱好',
- boxLabel : '游泳'
- }),
- 在一排
- new Ext.form.Checkbox({
- name : 'swim',
- itemCls:'float-left',//向左浮动
- clearCls:'allow-float',//允许浮动
- fieldLabel:'爱好',
- boxLabel : '游泳'
- }),
- new Ext.form.Checkbox({
- name : 'walk',
- clearCls:'stop-float',//允许浮动
- hideLabel:true, //横排后隐藏标签
- boxLabel : '散步'
- })
- TriggerField (很像一个默认combobox)
- new Ext.form.TriggerField({
- id:'memo',
- fieldLabel:'触发字段',
- hideTrigger : false,
- onTriggerClick : function(e){
- }
- })
- combobox下拉菜单控件
- 1.本地模式
- 本地数据源:
- 数据源的定义:
- var store = new Ext.data.SimpleStore({//定义组合框中显示的数据源
- fields: ['province', 'post'],
- data : [['北京','100000'],['通县','101100'],['昌平','102200'],
- ['大兴','102600'],['密云','101500'],['延庆','102100'],
- ['顺义','101300'],['怀柔','101400']]
- });
- new Ext.form.ComboBox({
- id:'post',
- fieldLabel:'邮政编码',
- triggerAction: 'all',//单击触发按钮显示全部数据
- store : store,//设置数据源
- displayField:'province',//定义要显示的字段
- valueField:'post',//定义值字段
- mode: 'local',//本地模式
- forceSelection : true,//要求输入值必须在列表中存在
- resizable : true,//允许改变下拉列表的大小
- typeAhead : true,//允许自动选择匹配的剩余部分文本
- value:'102600',//默认选择大兴
- handleHeight : 10//下拉列表中拖动手柄的高度
- })
- 2.远程模式
- 远程数据源
- var store = new Ext.data.SimpleStore({
- proxy : new Ext.data.HttpProxy({//读取远程数据的代理
- url : 'bookSearchServer.jsp'//远程地址
- }),
- fields : ['bookName']
- });
- new Ext.form.ComboBox({
- id:'book',
- allQuery:'allbook',//查询全部信息的查询字符串
- loadingText : '正在加载书籍信息',//加载数据时显示的提示信息
- minChars : 3,//下拉列表框自动选择前用户需要输入的最小字符数量
- queryDelay : 300,//查询延迟时间
- queryParam : 'searchbook',//查询的名字
- fieldLabel:'书籍列表',
- triggerAction: 'all',//单击触发按钮显示全部数据
- store : store,//设置数据源
- displayField:'bookName',//定义要显示的字段
- mode: 'remote'//远程模式,
- })
- 远程json数据源
- var store = new Ext.data.JsonStore({
- url : 'bookSearchServerPage.jsp',//远程地址
- totalProperty : 'totalNum',
- root : 'books',
- fields : ['bookName']
- });
- 分页式组合框
- new Ext.form.ComboBox({
- id:'book',
- fieldLabel:'书籍列表',
- store : store,//设置数据源
- allQuery:'allbook',//查询全部信息的查询字符串
- triggerAction: 'all',//单击触发按钮显示全部数据
- listWidth : 230,//指定列表宽度
- editable : false,//禁止编辑
- loadingText : '正在加载书籍信息',//加载数据时显示的提示信息
- displayField:'bookName',//定义要显示的字段
- mode: 'remote',//远程模式
- pageSize : 3//分页大小
- })
- 转select 为 combobox
- new Ext.form.ComboBox({
- name:'level',
- fieldLabel:'职称等级',
- lazyRender : true,
- triggerAction: 'all',//单击触发按钮显示全部数据
- transform : 'levelName'
- })
- <SELECT ID="levelName">
- <OPTION VALUE="1">高级工程师</OPTION>
- <OPTION VALUE="2">中级工程师</OPTION>
- <OPTION VALUE="3" SELECTED>初级工程师</OPTION>
- <OPTION VALUE="4">高级经济师</OPTION>
- <OPTION VALUE="5">中级经济师</OPTION>
- <OPTION VALUE="6">初级经济师</OPTION>
- </SELECT>
- TimeField 控件
- new Ext.form.TimeField({
- id:'time',
- width : 150,
- maxValue : '18:00',//最大时间
- maxText : '所选时间应小于{0}',//大于最大时间的提示信息
- minValue : '10:00',//最小时间
- minText : '所选时间应大于{0}',//小于最小时间的提示信息
- maxHeight : 70,//下拉列表的最大高度
- increment : 60,//时间间隔为60分钟
- format : 'G时i分s秒',//G标示为24时计时法
- invalidText :'时间格式无效',
- fieldLabel:'时间选择框'
- })
- DateField 控件
- new Ext.form.DateField({
- id:'date',
- format:'Y年m月d日',//显示日期的格式
- maxValue :'12/31/2008',//允许选择的最大日期
- minValue :'01/01/2008',//允许选择的最小日期
- disabledDates : ["2008年03月12日"],//禁止选择2008年03月12日
- disabledDatesText :'禁止选择该日期',
- disabledDays : [0,6],//禁止选择星期日和星期六
- disabledDaysText : '禁止选择该日期',
- width : 150,
- fieldLabel:'日期选择框'
- })
- Hidden 控件
- new Ext.form.Hidden({//隐藏域
- name:'age',
- width : 150,
- fieldLabel:'年龄'
- }),
- FieldSet控件相当于groupBox
- new Ext.form.FieldSet({
- title:'产品信息',
- labelSeparator :':',//分隔符
- items:[
- new Ext.form.TextField({
- fieldLabel:'产地'
- }),
- new Ext.form.NumberField({
- fieldLabel:'售价'
- })
- ]
- }),
- TextField控件
- vtype 输入格式属性应用
- new Ext.form.TextField({
- fieldLabel:'电子邮件',
- width : 170,
- vtype:'email'
- }),
- new Ext.form.TextField({
- fieldLabel:'网址',
- width : 170,
- vtype:'url'
- }),
- new Ext.form.TextField({
- fieldLabel:'字母',
- width : 170,
- vtype:'alpha'
- }),
- new Ext.form.TextField({
- fieldLabel:'字母和数字',
- width : 170,
- vtype:'alphanum'
- })