如何在Sencha Touch datepickerfield中引用“完成”按钮

时间:2013-03-02 03:02:09

标签: javascript controller sencha-touch

当用户从datepickerfield组件中选择日期时(当他们点击内置的“完成”按钮时),我需要触发一个事件。我试图引用按钮的“动作”,除此之外,但没有运气。

有关如何从datepickerfield“完成”按钮创建ref(或处理程序或侦听器)的任何信息将不胜感激。

以下是我的观点的一部分:

     items:[{
                xtype:  'button',
                align:  'right',
                text:   'Mark all present',
                action: 'markAllPresent'
            },
            {
                xtype:   'datepickerfield',
                cls:    'pickAdate',
                align:  'left',
                label:  'Date',
                name:   'date',
                value:   new Date(),
                picker    : {
                    yearFrom: 2012,
                    toolbar : {
                        items : [
                            {
                                xtype:  'button',
                                ui:     'confirm',
                                text:   'Today',
                                align:  'right',
                                handler: function(button, event) {
                                    var picker = button.up('datepicker');
                                    picker.fireEvent('change', picker, Ext.DateExtras.clearTime(new Date()));
                                    //Today button , clear date
                                }
                            }
                        ]
                    }
                },
                doneButton:{
                    action: 'dateDone'  //THIS DOES NOTHING ---------==============
                },
                listeners: {

                    change: function(picker, date) {
                        console.log(date);
                        var store = Ext.create('Ext.data.Store', {
                            model: 'App.model.NewDateModel',
                            id:'DateStore'
                        });
                        store.add(date);
                        store.setData(date);
                        store.sync();

                        this.fireEvent("newDatePicked", this); 
                        // **DOES NOT FIRE EVENT IN MY CONTROLLER================

                    }
                }
            }]

我的控制员:

config: {
    control: {
        doneButton: {
            newDatePicked: 'newDatePicked'
        }
    },
    refs: {
        doneButton: 'button[action=dateDone]'
    }
},

newDatePicked: function(list, record) {
  .....
}

由于

1 个答案:

答案 0 :(得分:2)

尝试使用控制器中的change事件

control: {
    "datepickerfield[itemId=giveItemID]": {
        change: 'newDatePicked'
    }
},

你应该给你的datepickerfield一个itemId并用它替换“giveItemID”。