1

当用户从 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) {
  .....
}

谢谢

4

1 回答 1

2

尝试在控制器中使用更改事件,

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

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

于 2013-03-02T03:11:47.367 回答