2015-11-06 117 views
0

我想在特定列值匹配時找到並獲取kendo網格行。 以下是我的劍道網格渲染,它綁定到一個數據表。該數據表具有名爲「Id」的唯一標識符列。我想通過比較Id列值來檢索網格行。如何獲得Kendo Grid行與其列的唯一值之一

@(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

誰能告訴我什麼,我做錯了什麼?

回答

0

您在問題中發佈的DOM屏幕截圖是針對列標題的。你應該定義你的模型的ID在你的網格的數據源,如:

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

然後,你可以得到一排ID = 2這樣的(假設你的網名是「網格」):

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

嗨Ataravati,我的數據源是我已經在網格定義ie中提供的數據表。 @(Html.Kendo()。Grid(Model.lstPageAndWidgetsData [i] .PageWidgetData)。你的意思是我必須通過提供數據源而不是直接將數據表傳遞給網格來更改網格定義嗎? –

+0

我不'我認爲你必須這樣做,爲什麼不嘗試呢? – ataravati

+0

我曾嘗試過,但不喜歡當我做dataSource.Model並抱怨Kendo.Mvc.UI.Fluent.DataSourceBuilder 不包含'Model'的定義 –