2013-07-19 58 views
6

我需要在kendoGrid中選擇特定的行,但不是通過data-uid(因爲data-uid在網格dataSource再次加載時發生更改)而是通過行itemID發生更改。我看到帖子,但他們只選擇了我不需要的uid行,實際上我需要重新啓動HTML5應用程序,並且在加載網格時,應該選擇一個特定的項目。這是我已經看到如何用數據項ID在劍道網格中選擇一行?

演示:jsfiddle.net/ruse​​v/qvKRk/3/

例如該對象有OrderID as ID,並且每次加載網格時,它將是相同的,不像uid,我想知道如何能夠選擇一行OrderID而不是uid

回答

0

圍繞着我設法解決的一個問題,就是遍歷所有行並檢查哪個行模型具有與參數相同的ID,然後獲取該行data-uid並通過data-uid選擇該項。它對我來說工作得很好,因爲沒有任何建議,現在是更好的答案。

+0

代碼在哪裏? – BorHunter

+0

@RuiMartins通過示例代碼提供了一個完整而簡潔的答案。如果你選擇Telerik論壇,那裏也有相同的信息。無需瀏覽所有數據行。假設你使用模型,'dataSource.get(OrderID)'方法將返回數據項:模型ID可以從'id'字段中獲得;行元素的UID可從'uid'字段中獲得。使用'data-uid'屬性來獲取行元素。 – Suncat2000

16

你猜我混合行itemID和data.uid。

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

好簡潔的答案。做得好。 – Suncat2000

+0

還有其他簡單的方法嗎? –

0

與umais提到什麼一起去,更好的辦法,因爲在功能方面沒有內置此作爲然而,將通過所有的記錄迭代找到你需要的人。即使有數據頁面,我構建的功能也能正常工作。我能想到的唯一的另一種方法是做一個輔助ajax調用;但是,這很好。請注意,我沒有測試超過2000條記錄。

var dataGrid = $("#GATIPS").data("kendoGrid").dataSource; 
    var numOfRows = dataGrid.total(); 
    var currentPageSize = dataGrid.pageSize(); 
    dataGrid.pageSize(numOfRows); 
    var dataGridData = dataGrid.data(); 
    for (var i = 0; i < numOfRows; i++) { 
     if (dataGridData[i].uid == e) 
      return dataGridData[i]; 
    } 
    dataGrid.pageSize(currentPageSize); // reset the view 

e是UID。然而,這可以代替你需要的變量,只需要替換檢查。