EXTJS 4.2 grid get column header name on cell click with custom multi cell selection model

EXTJS 4.2 grid get column header name on cell click with custom multi cell selection model

我已经试过了 grid.getColumnModel().getColumnHeader(columnIndex);但这不起作用。我正在使用自定义网格选择 model.I 希望在单击相应列中的任何单元格时获取列 header 值

你需要给面板添加cellClick监听器,这里是修改后的代码

var grid1 = Ext.create('Ext.grid.Panel', {
  renderTo: Ext.getBody(),
  store: store,
  width:0.3*Ext.getBody().getViewSize().width,
  height: 0.5*Ext.getBody().getViewSize().height,
  columnLines: true,
  columns: [{
      text     : 'Company',
      locked   : true,
      sortable : false,
      dataIndex: 'company',
      renderer : function (value, metaData, record, row, col, store,gridView)                {
    metaData.tdAttr = 'data-qtip="' + value + '"';
    return value;
 }
 },{
    text     : 'Price',
    width    : 125,
    locked:true,
    sortable : true,
    renderer : 'usMoney',
    dataIndex: 'price',
  },{
    text     : 'Change',
    width    : 555,
    sortable : true,
    dataIndex: 'change',
    renderer : function (value, metaData, record, row, col, store, gridView)  {
    metaData.tdAttr = 'data-qtip="' + value + '"';
    return value;
  }
  },{
      text     : '% Change',
      width    : 555,
      sortable : true,
      renderer : pctChange,
      dataIndex: 'pctChange',
  },{
      text     : 'Last Updated',
      width    : 555,
      sortable : true,
      renderer : Ext.util.Format.dateRenderer('m/d/Y'),
      dataIndex: 'lastChange'
      }],
  title: 'Locking Grid Column',
  selType: 'cellmodel',
  selModel: Ext.create('MyApp.MultiCellSelectionModel',{
          mode: 'MULTI',
          allowDeselect: true
         }),
           multiSelect: true,
           listeners : {
                 cellclick( grid, cell, columnIndex, record , node , rowIndex , evt){
             var cellId = grid.getHeaderCt().getHeaderAtIndex(columnIndex).id;
                        var dataIndex = grid.getHeaderCt().getHeaderAtIndex(columnIndex).dataIndex; 

                        var text =  grid.getHeaderCt().getHeaderAtIndex(columnIndex).text; 

                        alert(dataIndex);
                        alert(text);
                    }
  }
 });