Extjs 如何使用xtype:';在单击“今天”按钮时添加自定义代码;日期字段';
如何使用xtype:“datefield”在单击“今天”按钮时添加自定义代码 例如:单击“今天”按钮后添加自定义日期Extjs 如何使用xtype:';在单击“今天”按钮时添加自定义代码;日期字段';,extjs,Extjs,如何使用xtype:“datefield”在单击“今天”按钮时添加自定义代码 例如:单击“今天”按钮后添加自定义日期 此代码不会阻止“今日”按钮的默认行为 { xtype: 'datefield', //... listeners:{ afterrender: function(){ this.getPicker().el .down("div.x-datepicker-footer")
此代码不会阻止“今日”按钮的默认行为强>
{
xtype: 'datefield',
//...
listeners:{
afterrender: function(){
this.getPicker().el
.down("div.x-datepicker-footer")
.down('a.x-btn')
.dom
.onclick = function(){
console.log('hooked');
};
}
}
}
正如@A1rPun所建议的,这里有一个从选择器获取按钮的实现
var picker = Ext.create('Ext.form.field.Date', {
anchor: '100%',
fieldLabel: 'From',
name: 'from_date',
maxValue: new Date()
});
var field = Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 400,
height: 400,
title: 'Dates',
items: [picker]
});
picker.getPicker().todayBtn.on('click', function() {
alert('hello');
});
呈现datefield后,可以从date picker对象获取todayBtn并更改其处理程序。下面的示例显示如何将“今天”操作更改为“昨天”:
Ext.onReady(函数(){
showPanel();
});
showPanel=函数(){
Ext.create('Ext.form.Panel'{
renderTo:Ext.getBody(),
宽度:250,
车身衬垫:10,
标题:“带有“昨天”按钮的日期字段”,
项目:[{
xtype:'日期字段',
主播:100%,
字段标签:“日期”,
格式:“Y/m/d”,
值:Ext.Date.subtract(新日期(),Ext.Date.DAY,1),
听众:{
呈现:函数(日期字段){
var picker=dateField.getPicker(),
昨天=Ext.Date.subtract(新日期(),Ext.Date.DAY,1),
选择昨天=函数(){
这个.setValue(昨天);
this.firevent('select',this,this.value);
this.onSelect();
};
picker.todayBtn.setText(“昨天”);
picker.todayBtn.setTooltip(Ext.String.format(“{0}(空格键)”,
Ext.Date.format(昨天,dateField.format));
picker.todayBtn.setHandler(选择昨天,picker);
picker.eventEl.addKeyListener(Ext.EventObject.SPACE,selectDayed,picker);
}
}
}]
});
}
+1这太棒了:)甚至比我的解决方案更好。
todayBtn
配置甚至不在文档中!我看到Saki的学校:)
var picker = Ext.create('Ext.form.field.Date', {
anchor: '100%',
fieldLabel: 'From',
name: 'from_date',
maxValue: new Date()
});
var field = Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 400,
height: 400,
title: 'Dates',
items: [picker]
});
picker.getPicker().todayBtn.on('click', function() {
alert('hello');
});