EXTJS 4.2 grid使用自定义多单元格选择模型单击单元格获取列标题名称

时间:2016-02-21 18:59:39

标签: extjs extjs4 extjs4.1 extjs4.2

我已经尝试过grid.getColumnModel()。getColumnHeader(columnIndex);但这不起作用。我正在使用自定义网格选择模型。我想在单击相应列中的任何单元格时获取列标题值

1 个答案:

答案 0 :(得分:1)

您需要在面板中添加 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);
                    }
  }
 });