headerclick事件在使用extjs的gridpanel上不起作用

时间:2015-05-18 15:32:09

标签: javascript extjs extjs4.1

我正在尝试使用ext js侦听器调用headerclick事件但无法调用。

这是我的代码:

var myGrid = Ext.Create('Ext.grid.Panel', {
    renderTo: 'shrGrid',
    renderTo: myGrid,
    store: myStore, //JSON object
    columns: myGrid.columns, //JSON object
    viewConfig: {
        listeners: {
            cellclick: function (view, cell, cellIndex, record, row,     rowIndex, e) {
                alert("cell clicked");
            },
            headerclick function (shrGrid, columns , e, t, eOpts) {
                alert("header clicked");
            }
        }
    }
});

这里正在调用单元格而没有任何问题。 但是headerclick既没有被调用,也没有给出任何错误。 我刚刚在这里使用了headerclick。请帮助我,我错过了任何东西,或者给我一些示例链接。

1 个答案:

答案 0 :(得分:0)

您的myGrid.columns可能看起来像这样:

columns : [{
    header : 'Name',
    dataIndex : 'name',
    sortable : false,
    field : {
        allowBlank : false
    }
}, {
    id: 'headerid', //Set your id here
    header : 'Description',
    dataIndex : 'description',
    sortable : false,
    field : {}
}, {
    header : 'Order',
    width : 40,
    dataIndex : 'sortOrder',
    hidden : true
}, {
    header : '',
    dataIndex : 'id',
    width : 30,
    fixed : true,
    sortable : false,
    hideable : false,
    align : 'center',
    renderer : function (v, p, r) {
        return "<img alt='Delete this record' src='images/icons/delete.gif'>";
    }
}],

如果你这样做,你可以访问id并添加一个像这样的监听器

var myGrid = Ext.Create('Ext.grid.Panel', {
    renderTo: 'shrGrid',
    renderTo: myGrid,
    store: myStore, //JSON object
    columns: myGrid.columns, //JSON object
    viewConfig: {
         listeners: {
            render: function(component) {
                 Ext.get('headerid').on('click',function() { //reference the id you defined for the column header
                     alert('header clicked');
                 });
            }
        }
    }
});