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

lzfw57am  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(92)

我有剑道网格分组列标题(两个标题)绑定数据源。我使用下面的代码来获取工作正常的单标题行网格的列索引。

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

但是当我的剑道网格有两个标题行时,这是不起作用的。下面是我的剑道网格的屏幕截图。上面提到的代码返回索引为1时,我实际上试图获得的图像中的多余/短列的索引,看起来它是重置索引时,一个新的组开始(组名称:所需数据,参考图片)

q1qsirdb

q1qsirdb1#

我终于找到了解决办法。这将适用于我的问题中提到的两种情况
不是直接获取索引,而是需要获取列的数据集的索引
现有代码:

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

相关问题