如何获取 Kendo 网格行及其列的唯一值之一

How to get Kendo Grid Row with one of its column's unique value

我试图在特定列值匹配时查找并获取 kendo 网格行。 以下是我的 Kendo 网格渲染,它绑定到数据 table。此数据 table 有一个名为 "Id" 的唯一标识符列。我想通过比较 Id 列值来检索网格行。

@(Html.Kendo().Grid(Model.lstDataTables[i].ADataTable)                                                    
    .Name(Model.lstDataTables[i].PWRId + "-Grid")
    .Columns(columns =>
    {
        foreach (System.Data.DataColumn column in Model.lstDataTables[i].ADataTable.Columns)                  {
            columns.Bound(column.DataType, column.ColumnName);
        }
    })
    .Scrollable()
)

以下是我的 jquery 代码,我试图在其中获取该行,但没有成功。

var gridRow = $(gridName).data("kendoGrid").tbody.find("tr[Id='" + 2 + "']");

以下是 grid 和 DOM Explorer 的屏幕截图

有人能告诉我我做错了什么吗?

您在问题中发布的 DOM 屏幕截图适用于 headers 栏。您应该在网格的数据源中定义模型的 ID,如下所示:

.DataSource(dataSource => dataSource
        .Model(model => model.Id(m => m.Id))

然后,您可以像这样获取 Id = 2 的行(假设您的网格名称是 "grid"):

var dataItem = $("#grid").data("kendoGrid").dataSource.get(2);
var row = $("#grid").data("kendoGrid").tbody
              .find("tr[data-uid='" + dataItem.uid + "']");