我正在动态创建日期选择器字段。我需要将选择器字段值设置为文本字段。不知怎的,我无法检索选择器值。显示日期选择器,但完成按钮抛出一个错误,说“无法调用方法”Todatestring“未定义。
我的代码是:
case 'date':
var cmp1 = Ext.create('Ext.Button', {
text:'Date:',
ui:'plain',
id:'datepicker',
handler:function () {
var datePicker = Ext.create('Ext.picker.Date', {
dateFormat:'Y-m-d',
id:'picker1',
doneButton:{
listeners:{
// when the done button is tapped, set the value
tap:function (button, event, eOpts) {
console.log('inside done button');
console.log(Ext.getCmp('picker1').getValue());
/* var picker = this.up('datepicker');
picker.fireEvent('change', picker, picker.getValue());*/
console.log('done button');
}
}
}
});
Ext.getCmp('overlayId').add(datePicker);
datePicker.show();
Ext.getCmp('datefield').setValue('');
}
});
Ext.getCmp('overlayId').add({ xtype:'container', padding:10, items:[cmp1] });
var cmp = Ext.create('Ext.field.Text', {
//label:'Date:',
id:'datefield',
listener:{
focus:function () {
console.log('on blue function called');
}
}
});
break;
答案 0 :(得分:1)
我认为你不需要直接覆盖setValue()函数。更好的方法是覆盖applyValue()或/和updateValue()函数。 有关配置属性以及apply / update / set模式如何工作的详细信息,请参阅http://docs.sencha.com/touch/2-0/#!/guide/class_system
干杯,奥列格
答案 1 :(得分:1)
我知道它已经很晚了,但是稍后帮助某人,你可以使用更改监听器来动态获取所选日期值
datePicker = Ext.create('Ext.picker.Date', {
itemId:'ctsdateselect',
value: new Date(),
yearFrom: 1985,
yearTo : 2050,
listeners: {
change: function (value, eOpts) {
console.log(eOpts);
},
cancel: function (picker) {
Ext.Msg.alert('You hit cancel', '');
}
}
});
datepicker.show();
答案 2 :(得分:-1)
我有同样的问题,它通过设置datepicker的值配置得到修复。 要获得新值,您实际上需要具有一些初始值。 Check this