繁体   English   中英

如何获取分组的Kendo网格中所选行的索引和数据

[英]How do I get the index and data of a selected row in a grouped Kendo grid

我正在尝试访问行索引,如下所示:

var grid = $("#grid").data("kendoGrid");
alert(grid.select().index());

我在这个jsfiddle链接中添加了我的代码。 这个代码在我的系统中工作,我不知道为什么在jsfiddle中没有调用deleteRecord()方法,但这不是实际的问题。

在这里点击最后一行的取消按钮提醒消息时会将索引显示为8 ,但实际索引为4 每个按钮只给我错误的索引。

你在小提琴中使用了一个非常古老的Kendo UI版本,因此选择也不起作用。 它没有找到deleteRecord的原因是你将你的小提琴设置为window.onLoad ,它发生在document.ready之后。

关于行索引:您需要确定相对于网格数据行的索引(如果您只是获取所选行的索引,它也将计算分组行;如果您有任何行,则会对细节行进行相同的操作) ,所以你可以像这样使用grid.items()

var grid = $("#grid").data("kendoGrid");        
var dataRows = grid.items();
var rowIndex = dataRows.index(grid.select());

在这里看演示。

如果你真正感兴趣的是访问所选行的数据,你应该使用类似的东西(请注意,所有这些都假设您的网格设置为单元格或单行选择):

var tr = grid.select().closest("tr");
var dataItem = grid.dataItem(tr);

所以,它可能只是我的kendo配置,但我必须访问所选记录的行索引的方式是这样的:

var archGrid = $("#archiveRecords").data("kendoGrid");
var impGrid = $("#importedRecords").data("kendoGrid");

var archRow = archGrid.select();
var impRow = impGrid.select();

var archRowIndex = archRow[0].rowIndex;
var impRowIndex = impRow[0].rowIndex;

因此,一旦我在变量中设置了索引,我就必须通过向指定的行添加和删除CSS类来设置它。 我不得不使用element.find方法来执行此操作:

if (condition1) {
    impRow.removeClass('k-state-selected');
    $('#importedRecords').data('kendoGrid').element.find('tbody tr:eq(' + archRowIndex + ')').addClass('k-state-selected');
}
else if (condition2){
    archRow.removeClass('k-state-selected');
    $('#archiveRecords').data('kendoGrid').element.find('tbody tr:eq(' + impRowIndex + ')').addClass('k-state-selected');
}

刚发布,因为我花了很长时间寻找如何通过行索引设置选定的行。 祝好运!

下面的代码将为您提供行索引以及剑道网格中的列索引,我希望这将是有用的

var grid = $("#kendogridid").data("kendoGrid");
                  var row = $(this).closest("tr");
      var rowIdx = $("tr", grid).index(row);        
                  var colIdx = $("td", row).index(this);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM