Ext JS DataIndex - PullRequest
       1

Ext JS DataIndex

4 голосов
/ 30 октября 2011

Я создал сетку, используя библиотеку extjs.

Сначала создали модель:

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

Во-вторых, я создал массив столбцов:

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
    }
]

В списке столбцов renderer событие определено ниже:

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

Как узнать из функции RenderColumn, dataindex, которую я определил в списке столбцов?

Это может быть ExternalId или TradeDate в случае, который я описал.

Я нашел решение:

grid.columns[colIdx].dataIndex

Где grid - это глобальная сеточная переменная.

Ответы [ 2 ]

5 голосов
/ 30 октября 2011

Хорошо, так, команда Sencha еще не документировала это, но оно доступно. Вы должны сделать это, используя метод, доступный в контейнере заголовка в сетке Ext.grid.View:

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

Причина, по которой это работает, заключается в том, что Ext.grid.View наследуется от Ext.table.View, у которого есть метод getHeaderAtIndex, который должен быть общедоступным, но еще не задокументирован.

Я узнал, что некоторые вещи еще не документированы через this

1 голос
/ 04 июля 2012

Вы можете указать defaultRenderer и затем использовать this.dataIndex. Как это:

{
    text: 'Trade Date',
    width: 65,
    sortable: true,
    cls: 'grid-header-LadderStep',
    dataIndex: 'TradeDate',
    defaultRenderer: RenderColumn
}

Теперь вы можете использовать this.dataIndex в ваших средствах визуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...