首页 文章

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

提问于
浏览
0

我有kendo网格,它有用数据源绑定的列 Headers (两个 Headers ) . 我使用以下代码来获取单个 Headers 行网格的列索引,它正常工作 .

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

enter image description here

1 回答

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

相关问题