0

我正在动态创建一个日期选择器字段。我需要将选择器字段值设置为文本字段。不知何故,我无法检索选择器值。显示日期选择器,但完成按钮引发错误,提示“无法调用未定义的方法“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;
4

3 回答 3

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();
于 2013-11-16T04:09:13.020 回答
1

我认为您不需要直接覆盖 setValue() 函数。更好的方法是覆盖 applyValue() 或/和 updateValue() 函数。有关配置属性以及 apply/update/set 模式如何工作的更多信息,请参阅http://docs.sencha.com/touch/2-0/#!/guide/class_system

干杯,奥列格

于 2012-07-31T11:39:50.820 回答
-1

我有同样的问题,它通过设置日期选择器的值配置得到解决。要获得新值,您实际上需要有一些初始值。检查这个

于 2012-09-20T19:27:14.727 回答