Tarih seçicinin görüntülendiği bir aydaki birkaç tarihi vurgulıyorum. Bu, yukarıda denetleyicisi bir Ajax çağrısından ayarlı bir değişkendir tarih işleve nesne Seçici bileşeniEkstra tarih seçici. Sorun, aydaki vurgulama tarihlerini değiştiriyor
Ext.override(Ext.form.field.Picker, {
highlightDates: function (picker, dates) {
if (Ext.isEmpty(dates)) return;
for(var i = 0; i < dates.length; i++) {
var t = new Date(dates[i].date),
dtMillis = t.getTime(),
offset = t.getTimezoneOffset() * 60 * 1000,
dt = dtMillis + offset,
cells = picker.cells.elements;
for (var c = 0; c < cells.length; c++) {
var cell = Ext.fly(cells[c]);
if (cell.dom.firstChild.dateValue == dt) {
cell.addCls('cell-highlight');
break;
}
}
}
}
});
bir highlightDates işlev ekleyerek yapılır.
getDates: function (cmp) {
var me = this;
Ext.Ajax.request({
url: 'someurl',
success: function (response) {
me.specificDates = Ext.JSON.decode(response.responseText).specificDates;
}
});
}
Denetleyici, tarih seçicinin dinleyiciyi genişleteceği bir işlevi de içerir.
setDatesToHighlight: function(picker){
picker.highlightDates(picker.picker,this.specificDates);
}
Son olarak, bu tarih seçici Bu dinleyici
items: [{
xtype: 'datefield',
editable: false,
listeners: {
expand: 'setDatesToHighlight'
}
}]
genişletmek kullanılarak görünür hale getirilir çağrılan tüm çalışma ince i seçicideki ay değiştirene kadar. Edilmektedir SetDatesToHighlight denetleyici işlevini tekrar tetikleyemiyorum, böylece seçilen aylar vurgulanır.
Seçici üzerinde güncelleme yöntemini geçersiz kılabileceğimi düşünüyordum, ancak highlightDates işlevine geçmek için gereken tarih nesnesini elde etmekte zorlanıyorum.
Her türlü öneriniz için teşekkürler. Şimdi expand
den update
dinleyicinin değiştirebilir
Ext.override(Ext.picker.Date, {
update: function (e) {
var res = this.callParent(arguments);
if (!this.pickerField) {
return res;
}
this.pickerField.fireEvent('update', this);
return res;
},
highlightDates: function (picker, dates) {
. . .
}
});
:
beni gerçekten yardımcı oldu ve şimdi benim hafta iyi :-) başlayacak Çok teşekkür ederim – grimmus