2012-04-20 20 views
3

私はExtJS Dateフィールドを持っています。アプリケーションでの操作中に、最小値と最大値が日付フィールドに割り当てられます。最小値と最大値は現在のdatの4年前ですが、日付ピッカーが開くと現在の無効日付に開きます。ユーザーは手動で日付を選択するために4年前にスクロールする必要があります。とにかく、minpとmaxの間の日付を表示することで、datepickerを更新することができます。ExtJS DateField - 初期化日

コードを追加する:

cmpDt.setMinValue(new Date(2000, 0, 1)); 
cmpDt.setMaxValue(new Date(2004, 0, 1)); 

これは、最小値と最大値を設定します。私はsetValue()を使用することはできません。なぜなら、テキストフィールドを変更/変更するからです。私は、テキストフィールドがdatepickerからの選択時にのみ値を取得したい。あなたがExt.form.field.DateViewvalueプロパティを使用して初期値を設定する必要が

おかげ

答えて

5

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

EDIT OPからのより多くの情報の後:

あなたはonExpandを無効にすることができますピッカーの値を初期化するメソッドです。

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

あなたが読むためにメソッドをオーバーライドすることができます::

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

をするだけにオーバーライドを追加 - 元1(ただし3はそれほど異なってはならないあなたはExtJSの4を使用することを指定した)ように見えます初期フォームフィールドの設定

+0

初期設定では最小値として追加できません。最大値は、実行された操作の間に設定されます。 – Zaje

+0

こんにちは、 上記のコードを実装した後、私のピッカーはextjs 4で展開されていません。 – Kanchan

0

この問題のEXTJS 3ソリューションに興味がある人は、次のコードを作成しました。

これにより、必要に応じてExt.DatePickerinitialDateToShowOnPickerを設定として渡すことができます。

また、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'); 
    } 
});  }