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

setValue() 関数を直接オーバーライドする必要はないと思います。より良いアプローチは、applyValue() または updateValue() 関数をオーバーライドすることです。設定プロパティと適用/更新/設定パターンの詳細については、 http://docs.sencha.com/touch/2-0/#! /guide/class_system を参照してください。

乾杯、オレグ

于 2012-07-31T11:39:50.820 に答える
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

私は同じ問題を抱えていましたが、日付ピッカーの値の構成を設定することで修正されました。新しい値を取得するには、実際には初期値が必要です。これを確認してください

于 2012-09-20T19:27:14.727 に答える