ExtJS DateField - 初始化日期

Zaj*_*aje 3 extjs datepicker datefield

我有一个ExtJS Date字段.在应用程序的某些操作期间,最小值和最大值将分配给日期字段.最小值和最大值是当前数据之前4年,但是当日期选择器打开时,它将打开到禁用的当前日期.用户必须手动回滚4年才能选择日期.无论如何,我可以通过显示最小值和最大值之间的日期来更新日期选择器以打开?

添加代码:

cmpDt.setMinValue(new Date(2000, 0, 1));
cmpDt.setMaxValue(new Date(2004, 0, 1));
Run Code Online (Sandbox Code Playgroud)

这设置了最小值和最大值.我无法使用,setValue()因为它会对文本字段进行初始化/更改.我希望textfield只能从datepicker中选择值.

谢谢

Ste*_*rig 5

您必须使用以下value属性设置初始值Ext.form.field.DateView:

{
    ...,
    minValue: new Date(2000, 0, 1),
    maxValue: new Date(2004, 11, 31),
    value: new Date(2002, 5, 15),
    ...
}
Run Code Online (Sandbox Code Playgroud)

在OP的更多信息后编辑:

您可以覆盖onExpand初始化选择器上的值的方法.原始的看起来像(假设您使用ExtJS 4 - 但3应该没有那么大的不同):

...,
onExpand: function() {
    var value = this.getValue();
    this.picker.setValue(Ext.isDate(value) ? value : new Date());
},
...
Run Code Online (Sandbox Code Playgroud)

您可以覆盖要读取的方法:

...,
onExpand: function() {
    var value = this.getValue(),
        myDefaultDate = /* do some processing to determine the default date*/;
    this.picker.setValue(Ext.isDate(value) ? value : myDefaultDate);
},
... 
Run Code Online (Sandbox Code Playgroud)

只需将覆盖添加到初始表单字段配置即可.