如何使用其列的唯一值获得Kendo Grid Row

时间:2015-11-06 15:11:25

标签: jquery asp.net-mvc-4 kendo-ui kendo-grid kendo-asp.net-mvc

我试图在特定列值匹配时找到并获取kendo网格行。 以下是我的Kendo网格渲染,它绑定到数据表。此数据表具有名为“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 + "']");

以下是网格和DOM资源管理器的屏幕截图 Grid Screen Shot

DOM Explorer

有谁能告诉我这里我做错了什么?

1 个答案:

答案 0 :(得分:0)

您在问题中发布的DOM屏幕截图是针对列标题的。您应该在网格的数据源中定义模型的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 + "']");