如何获取分组列(多标题)Kendo网格中特定列的索引

时间:2017-01-16 07:00:01

标签: jquery 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');
}

但是当我的kendo网格有两个标题行时,这不起作用。下面是我的剑道网格的屏幕截图。上面提到的代码在我实际尝试获取图像中多余/短列的索引时将索引返回为1,当新组启动时它看起来正在重置索引(组名:请求者数据,参考图像)

enter image description here

1 个答案:

答案 0 :(得分: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');

应更改为:

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');
                    }