我有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,当新组启动时它看起来正在重置索引(组名:请求者数据,参考图像)
答案 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');
}