今天遇到一个,如何给日期控件限制只能选择当天以后的日期,官网上的例子是2个控件的日期比较,想了想,取了个巧,我也弄了2日期控件,只不过是隐藏的,隐藏的默认赋值当天,这样就跟官网上的日期比较差不多了。呵呵~
<ext:DateField ID="DateField1" runat="server" Vtype="daterange" FieldLabel="To" Hidden="true" AnchorHorizontal="100%" EnableKeyEvents="true"> <CustomConfig> <ext:ConfigItem Name="endDateField" Value="#{PlanDate}" Mode="Value" /> </CustomConfig> <Listeners> <KeyUp Fn="onKeyUp" /> </Listeners> </ext:DateField> <ext:DateField ID="PlanDate" runat="server" Vtype="daterange" FieldLabel="计划日期" EnableKeyEvents="true" Format="Y-m-d" Width="250px"> <CustomConfig> <ext:ConfigItem Name="startDateField" Value="#{DateField1}" Mode="Value" /> </CustomConfig> <Listeners> <KeyUp Fn="onKeyUp" /> </Listeners> </ext:DateField>
第一个DateField 设置了Hidden="true" 隐藏属性,如何给控件赋默认值,请看博文 ext.net日期控件默认赋值
这里还有一个onKeyUp的js验证,就是验证2个日期控件的日期比较
var onKeyUp = function (field) { var v = this.processValue(this.getRawValue()), field; if (v.length < 1) { if (this.startDateField) { field = Ext.getCmp(this.startDateField); field.setMaxValue(); this.dateRangeMax = null; } else if (this.endDateField) { field = Ext.getCmp(this.endDateField); field.setMinValue(); this.dateRangeMin = null; } field.validate(); } };