【问题标题】:How do I get the index and data of a selected row in a grouped Kendo grid如何获取分组剑道网格中选定行的索引和数据
【发布时间】:2013-12-28 13:38:33
【问题描述】:

我正在尝试像这样访问行索引:

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

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

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

【问题讨论】:

    标签: javascript jquery html kendo-ui kendo-grid


    【解决方案1】:

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

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

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

    查看演示here

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

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

    【讨论】:

    • @Gunaseelan 添加到答案中;您可能需要考虑针对其他问题提出单独的问题
    • 谢谢你的朋友。还有另一种方法。 var grid = $("#grid").data("kendoGrid"); var dataItem = grid.dataItem(grid.select());我不知道这是否正确。但这行得通。
    • @Gunaseelan 如果selectable 设置为“行”,您的解决方案将起作用;如果selectable 是“单元格”或“行”,我发布的将起作用
    • 好的朋友。谢谢你的精彩解释。
    • 非常感谢.. @LarsHöppner
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      以下代码将为您提供剑道网格中的行索引和列索引 我希望这会很有用

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 2015-08-12
        • 2014-07-09
        • 1970-01-01
        • 2014-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多