日期选择器sencha touch 2

时间:2012-07-31 05:11:40

标签: datepicker sencha-touch-2

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

3 个答案:

答案 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