對於任何對這個問題的EXTJS 3解決方案感興趣的人,我做了下面的代碼。
這允許您在聲明時將initialDateToShowOnPicker
作爲配置傳遞給Ext.DatePicker
,如果需要的話。
它還允許您在datepicker組件上調用setInitialDateToShowOnPicker(initialDateToShowOnPicker)
來動態設置它。
兩者都需要使用Date()類型,並且datepicker上不能有已設置的值。
if (Ext.versionDetail && Ext.versionDetail.major == 3) {
Ext.form.DateField.prototype.setInitialDateToShowOnPicker = function (initialDateToShowOnPicker) {
this.initialDateToShowOnPicker = initialDateToShowOnPicker;
};
Ext.form.DateField.override({
onTriggerClick: function() {
if(this.disabled){
return;
}
if(this.menu == null){
this.menu = new Ext.menu.DateMenu({
hideOnClick: false,
focusOnSelect: false
});
}
this.onFocus();
Ext.apply(this.menu.picker, {
minDate : this.minValue,
maxDate : this.maxValue,
disabledDatesRE : this.disabledDatesRE,
disabledDatesText : this.disabledDatesText,
disabledDays : this.disabledDays,
disabledDaysText : this.disabledDaysText,
format : this.format,
showToday : this.showToday,
startDay: this.startDay,
minText : String.format(this.minText, this.formatDate(this.minValue)),
maxText : String.format(this.maxText, this.formatDate(this.maxValue)),
initialDateToShowOnPicker: this.initialDateToShowOnPicker // Date() type
});
this.menu.picker.setValue(this.getValue() || this.initialDateToShowOnPicker || new Date());
this.menu.show(this.el, "tl-bl?");
this.menuEvents('on');
}
}); }
我不能將它添加到初始配置中,因爲最小值和最大值會在執行某些操作之間設置。 – Zaje 2012-04-20 07:26:41
嗨, 執行上面的代碼後,我的選擇器沒有擴展或填充extjs 4。 – Kanchan 2013-07-08 06:49:40