簡體   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