如何处理ExtJS中两个不同元素的事件传播

时间:2014-08-29 16:09:52

标签: extjs4

我有一个带工具栏的网格编辑器。有两个事件处理程序,一个用于网格存储(更新事件),另一个用于网格工具栏上的按钮。 当我编辑网格单元格并更新内容并单击工具栏上的按钮而不显示时,网格存储的更新'事件被触发而不是按钮处理程序。有没有办法触发这两个事件? 这是代码。

Ext.define('Plant', {
    extend: 'Ext.data.Model',
    fields: [
        // the 'name' below matches the tag name to read, except 'availDate'
        // which is mapped to the tag 'availability'
        {name: 'common', type: 'string'},
    ]
});




// create the Data Store
var store = Ext.create('Ext.data.Store', {
    // destroy the store if the grid is destroyed
    autoDestroy: true,
    model: 'Plant',
    proxy: {
        type: 'ajax',
        // load remote data using HTTP
        url: 'plants.xml',
        // specify a XmlReader (coincides with the XML format of the returned data)
        reader: {
            type: 'xml',
            // records will have a 'plant' tag
            record: 'plant'
        }
    },
    sorters: [{
        property: 'common',
        direction:'ASC'
    }],
    listeners:{
        'update':function(){
            //Do something related to this store data.
        }
    }
});


// create the grid and specify what field you want
// to use for the editor at each header.
var grid = Ext.create('Ext.grid.Panel', {
    store: store,
    columns: [{
        id: 'common',
        header: 'Common Name',
        dataIndex: 'common',
        flex: 1,
        editor: {
            allowBlank: false
        }
    }],
    selModel: {
        selType: 'rowmodel'
    },
    renderTo: 'editor-grid',
    width: 600,
    height: 300,
    title: 'Edit Plants?',
    frame: true,
    tbar: [{
        text:'Test event',
        handler:function(){
            //Handle button click.
        }
    }
    ]
});

1 个答案:

答案 0 :(得分:0)

Sha Ken,此代码是框架示例的一部分。我重现了场景,并且两个事件都被触发了。也许你只看到/ debuggin一个事件。