Как получить индекс определенного столбца в сгруппированном столбце (multi header) Kendo grid

У меня есть сетка kendo, которая имеет сгруппированные заголовки столбцов (два заголовка), связанные с источником данных. Я использую следующий код, чтобы получить индекс столбца одной сетки строки заголовка, которая работает нормально.

dataBound: function (e) {
            var grid = e.sender;
            var rows = grid.tbody.children();
            var dataItem = grid.dataItem(rows[0]);
            var priColIndex = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]").index();
            var cell = row.children().eq(priColIndex);

            if (dataItem.FromDemandQty < 0)
                cell.addClass('stkShort');
            else  
                cell.addClass('stkExcess');
}

Но это не работает, когда моя сетка кэндо имеет две строки заголовка. Ниже приведен снимок экрана my Kendo grid. Вышеупомянутый код возвращает индекс как 1, Когда я фактически пытаюсь получить индекс избыточного / короткого столбца в образе, который выглядит, он сбрасывает индекс при запуске новой группы (имя группы : Данные запросчика, ссылаются на образ)

Введите описание изображения здесь

1 ответ

  1. Наконец я нашел решение. Это будет работать как для сценария, упомянутого в моем вопросе

    Вместо того, чтобы принимать индекс непосредственно, нужно взять индекс набора данных столбца

    Существующий код :

    var priColIndex = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]").index();
            var cell = row.children().eq(priColIndex);
    
            if (dataItem.FromDemandQty < 0)
                cell.addClass('stkShort');
            else  
                cell.addClass('stkExcess');
    

    Должно быть изменено как :

    var fromDemCell = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]");
                        if (fromDemCell.length > 0) {
                            var priColIndex = parseInt(fromDemCell[0].dataset.index);
                            var cell = row.children().eq(priColIndex );
                            if (dataItem.FromDemandQty < 0) {
                                cell.addClass('stkShort');
                            }
                            else
                                cell.addClass('stkExcess');
                        }