Ext.widgets-form(下)ComboBox,TimeField,DateF

系统 1486 0
Ext.form.NumberField
继承自Ext.form.TextField,因为Ext.form.TextField虽然强大,但写起来的确还是有点麻烦,后面的类都继承自Ext.form.TextField,没有自定义的方法,属性和事件

config定义为{
allowDecimals : Boolean //true
allowNegative : Boolean //true
baseChars : String //'0123456789'
decimalPrecision : Number //精度,默认值2
decimalSeparator : String //小数分隔符
fieldClass : String //默认样式为x-form-field x-form-num-field
maxText : String
maxValue : Number //默认Number.MAX_VALUE
minText : String
minValue : Number //默认Number.NEGATIVE_INFINITY
nanText : String //NaN时显示?
}

Ext.form.TextArea

config{
autoCreate : String/Object //{tag: "textarea", style: "width:100px;height:60px;", autocomplete: "off"}
growMax : Number //1000
growMin : Number //60
preventScrollbars : Boolean //如果为真等于设置overflow: hidden,默认为false
}

Ext.form.TriggerField
这个类只要text旁边加了个下拉按钮,要自己实现onTriggerClick
config{
autoCreate : String/Object, //{tag: "input", type: "text", size: "16", autocomplete: "off"}
hideTrigger : Boolean //隐藏trigger,就是右边的那个下拉选择框
triggerClass : String

}
事件
onTriggerClick( EventObject e ) : void


Ext.form.DateField
继承自TriggerField,用于日期选择

config{
altFormats : String //转换用户输入到日期时的格式,默认'm/d/Y|m-d-y|m-d-Y|m/d|m-d|d'
autoCreate : String/Object //{tag: "input", type: "text", size: "10", autocomplete: "off"}
disabledDates : Array //禁止选择的日期:例 ["^03","04/../2006","09/16/2003"],不让选3月,2006年4月,2003年9月16
disabledDatesText : String //不让选总得给个理由吧
disabledDays : Array //不让选星期几,例[0,6],不让选周六,周日
disabledDaysText : String //周日要休息,这就是理由
format : String //显示时的格式
invalidText : String //验证非法时的提示
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
triggerClass : String
}

方法,除了构造,多了两个顾名思义的方法
DateField( Object config )
getValue() : Date
setValue( String/Date date ) : void



Ext.form.ComboBox
config{
allQuery : String //''
autoCreate : Boolean/Object //{tag: "input", type: "text", size: "24", autocomplete: "off"}
displayField : String //显示字段
editable : Boolean //true当然就是combobox了,如果不可编辑就是一个select了
forceSelection : Boolean
handleHeight : Number //如果resiable为真时,设置
hiddenName : String
lazyInit : Boolean //除非得到焦点才开始初始化列表,默认为真
lazyRender : Boolean //除非请求,才开始输出,默认为假
listAlign : String //对齐方式,参见Ext.Element.alignTo,默认为'tl-bl'
listClass : String
listWidth : Number
loadingText : String //仅当mode = 'remote'时调用数据时显示的文本
maxHeight : Number //300
minChars : Number //最少输入多少个字开始响应,远程时默认为4,本地为0,如果不可编辑则此值无效
minListWidth : Number
mode : String //可选值local/remote之一,从本地还是远程取数据
pageSize : Number //在远程模式下,如果此值大于0会在底部显示一个翻页工具条
queryDelay : Number //查询延时,远程默认为500,本地10
queryParam : String //查询参数,默认为query
resizable : Boolean
selectOnFocus : Boolean
selectedClass : String
shadow : Boolean/String //True或"sides"为默认风格, "frame" for 4-way shadow, and "drop" for bottom-right
store : Ext.data.Store
title : String
transform : Mixed //对应一个select元素,可以将select转为combobox对象
triggerAction : String //点击按钮时的动作.默认为query
triggerClass : String
typeAhead : Boolean //false
typeAheadDelay : Number //250
valueField : String
valueNotFoundText : String //值不存在时的提示信息
}

属性
view : Ext.DataView

方法
ComboBox( Object config )
构造

clearValue() : void
清除所有文本/值对

collapse() : void
expand() : void
收起/展开下拉列表

doQuery( String query, Boolean forceAll ) : void
执行查询

getValue() : String
选择当前字段的值

isExpanded() : void
下拉列表是展开的?

select( Number index, Boolean scrollIntoView ) : void
选中第index列表项

selectByValue( String value, Boolean scrollIntoView ) : Boolean
选中值为value的列表项

setEditable( Boolean value ) : void
设editable属性为value

setValue( String value ) : void
设置当前值为

事件
beforequery : ( Object queryEvent )
beforeselect : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )
collapse : ( Ext.form.ComboBox combo )
expand : ( Ext.form.ComboBox combo )
select : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )


Ext.form.TimeField
继承自combobox,用于选择时间
config{
altFormats : String //
format : String
increment : Number //时间增长间隔,默认15
invalidText : String
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
}

总的来说Ext.form对input type='text' select 这样的输入标签都有对应的类,并对有些标签做了简单的扩展,当然很重要的一点,漂亮多了,vtype属性也方便了处理,建议有兴趣的同胞对 Ext.form.VTypes和Ext.form.HtmlEditor做一些扩展
form中还有两个类,比如下例中的FormPanel和FieldSet,
都继承自panel,所以会放在panel中解释

综合示例
Ext.QuickTips.init();

var arr = [[ 1 , ' 本.拉登 ' ],[ 2 , ' 笨.拉登 ' ],[ 3 , ' 笨.拉灯 ' ]];
var reader = new Ext.data.ArrayReader(
... {id: 0 } ,
[
... {name: ' value ' } ,
... {name: ' key ' }
]);

var store = new Ext.data.Store( ... {
reader:reader
}
);
store.loadData(arr);

var htmleditor = new Ext.form.HtmlEditor( ... {
fieldLabel:
' htmleditor ' ,
width:
450 ,
fontFamilies:[
' 宋体 ' , ' 隶书 ' ],
name:
' editor ' ,
id:
' editor '
}
);
var form = new Ext.FormPanel( ... {
labelWidth:
75 ,
url:
' post.php ' ,
frame:
true ,
width:
800 ,
defaultType:
' textfield ' ,
items:[
new Ext.form.Checkbox( ... { // checkbox
fieldLabel: ' checkbox ' ,
name:
' cb ' ,
checked:
true ,
boxLabel:
' checkbox '
}
),
new Ext.form.FieldSet( ... { // radio
border: false ,
title:
' radio ' ,
items:[
new Ext.form.Radio( ... {
labelSeparator:
'' ,
name:
' radio ' ,
checked:
true ,
boxLabel:
' radio1 '
}
),
new Ext.form.Radio( ... {
labelSeparator:
'' ,
name:
' radio ' ,
checked:
true ,
boxLabel:
' radio2 '
}
)
]
}
),
new Ext.form.Hidden( ... { // hidden
name: ' hidden '
}
),

htmleditor,
new Ext.form.TextField( ... { // text
fieldLabel: ' text ' ,
name:
' text ' ,
grow:
true ,
allowBlank:
false ,
blankText:
" 这个字段最好不要为空 " ,
maskRe:
/ [a - zA - z] / gi
}
),
new Ext.form.NumberField( ... { // NumberField
allowNegative: true ,
fieldLabel:
' number ' ,
name:
' number '
}
),
new Ext.form.TextArea( ... { // TextArea
fieldLabel: ' textarea ' ,
name:
' textarea '
}
),
new Ext.form.TriggerField( ... { // TriggerField
fieldLabel: ' TriggerField ' ,
name:
' TriggerField '
}
),
new Ext.form.ComboBox( ... { // select
fieldLabel: ' select ' ,
editable:
false ,
triggerAction:
' all ' ,
valueField:
' value ' ,
displayField:
' key ' ,
mode:
' local ' ,
store:store
}
),
new Ext.form.ComboBox( ... { // combobox
fieldLabel: ' ComboBox ' ,
displayField:
' key ' ,
mode:
' local ' ,
store:store
}
),
new Ext.form.DateField( ... { // DateField
fieldLabel: ' DateField ' ,
format:
' Y-m-d ' ,
disabledDays:[
0 , 6 ]
}
),
new Ext.form.TimeField( ... { // TimeField
fieldLabel: ' TimeField ' ,
mode:
' local ' ,
increment:
60

}
)
]
}
);
form.render(document.body);

htmleditor.setRawValue(
" <h1>helloworld</h1> " );
htmleditor.syncValue();

Ext.widgets-form(下)ComboBox,TimeField,DateField,TriggerField,TextArea,NumberField


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论