Ext JS DataIndex

Gre*_*zik 4 extjs

我使用extjs库创建了一个网格.

首先创建了一个模型:

Ext.define('Option', {
    extend: 'Ext.data.Model',
    idProperty: 'OptionId',
    fields: [
        { name: 'TradeDate' },
        { name: 'OptionType' }
    ]
});
Run Code Online (Sandbox Code Playgroud)

其次我创建了列数组:

var allColumns = [
    {
        text: 'Option Id',
        width: 75,
        sortable: true,
        cls: 'grid-header-LadderStep',
        dataIndex: 'ExternalId',
        renderer: RenderColumn
    },
    {
        text: 'Trade Date',
        width: 65,
        sortable: true,
        cls: 'grid-header-LadderStep',
        dataIndex: 'TradeDate',
        renderer: RenderColumn
    }
]
Run Code Online (Sandbox Code Playgroud)

列列表renderer事件定义如下:

function RenderColumn (value, metaData, record, rowIdx, colIdx, store, view) {
    metaData.style = 'background-color:#BBD5EE !important';
    return value;
};
Run Code Online (Sandbox Code Playgroud)

我如何从RenderColumn功能中知道dataindex我在列列表中定义的内容?

它可以是ExternalId或者TradeDate我描述的情况.

我找到了解决方案:

grid.columns[colIdx].dataIndex
Run Code Online (Sandbox Code Playgroud)

网格是全局网格变量.

Rya*_*yan 5

好吧,Sencha团队尚未记录这一点,但它已经可以使用了.您必须使用网格上的标头容器上提供的方法来执行此操作Ext.grid.View:

    renderer: function(val, meta, rec, rowIdx, colIdx, store, view) {
        var column = view.getHeaderAtIndex(colIdx);
        var dataIndex = column.dataIndex;
    }
Run Code Online (Sandbox Code Playgroud)

这样做的原因是因为Ext.grid.View继承Ext.table.View了一个方法getHeaderAtIndex,它应该是公开的,但尚未被记录.

我发现某些事情尚未通过此记录