当用户从datepickerfield组件中选择日期时(当他们点击内置的“完成”按钮时),我需要触发一个事件。我试图引用按钮的“动作”,除此之外,但没有运气。
有关如何从datepickerfield“完成”按钮创建ref(或处理程序或侦听器)的任何信息将不胜感激。
以下是我的观点的一部分:
items:[{
xtype: 'button',
align: 'right',
text: 'Mark all present',
action: 'markAllPresent'
},
{
xtype: 'datepickerfield',
cls: 'pickAdate',
align: 'left',
label: 'Date',
name: 'date',
value: new Date(),
picker : {
yearFrom: 2012,
toolbar : {
items : [
{
xtype: 'button',
ui: 'confirm',
text: 'Today',
align: 'right',
handler: function(button, event) {
var picker = button.up('datepicker');
picker.fireEvent('change', picker, Ext.DateExtras.clearTime(new Date()));
//Today button , clear date
}
}
]
}
},
doneButton:{
action: 'dateDone' //THIS DOES NOTHING ---------==============
},
listeners: {
change: function(picker, date) {
console.log(date);
var store = Ext.create('Ext.data.Store', {
model: 'App.model.NewDateModel',
id:'DateStore'
});
store.add(date);
store.setData(date);
store.sync();
this.fireEvent("newDatePicked", this);
// **DOES NOT FIRE EVENT IN MY CONTROLLER================
}
}
}]
我的控制员:
config: {
control: {
doneButton: {
newDatePicked: 'newDatePicked'
}
},
refs: {
doneButton: 'button[action=dateDone]'
}
},
newDatePicked: function(list, record) {
.....
}
由于
答案 0 :(得分:2)
尝试使用控制器中的change事件
control: {
"datepickerfield[itemId=giveItemID]": {
change: 'newDatePicked'
}
},
你应该给你的datepickerfield一个itemId并用它替换“giveItemID”。