2013-07-19 21 views
6

kendoGridでは特定の行を選択する必要がありますが、data-uidではなく(グリッドのdataSourceが再びロードされたときにdata-uidが変更されるため)、itemID行で指定する必要があります。私は投稿を見ましたが、必要なものではないuidで行を選択するだけです。実際にはHTML5アプリケーションを再起動する必要があり、グリッドが読み込まれたら特定の項目を選択する必要があります。これは私がデータアイテムIDで剣道グリッドの行を選択する方法は?

デモを見ていたものです:jsfiddle.net/ruse​​v/qvKRk/3/

例えばオブジェクトにOrderID as IDがあり、グリッドがロードされるたびに、uidとは異なり、uidの代わりにOrderIDの行を選択する方法を知りたいと思います。

答えて

0

すべての行を調べ、そのIDと同じIDを持つ行モデルを確認してから、その行のdata-uidを取得し、data-uidを使用して項目を選択することでした。それは私のためにはうまくいきます。なぜなら、提案はなかったから、今はもっと良い答えです。

+0

コードはどこですか? – BorHunter

+0

@RuiMartinsは、サンプルコードで完全かつ簡潔な答えを提供しました。あなたがTelerikのフォーラムを選んだら、そこにも同じ情報があります。すべての行のデータを処理する必要はありません。モデルを使用していると仮定すると、 'dataSource.get(OrderID)'メソッドはデータ項目を返します。モデルIDは 'id'フィールドから得られます。行要素のUIDは 'uid'フィールドから得られます。 'data-uid'属性を使って行要素を取得します。 – Suncat2000

16

あなたがカムにitemIDとdata.uidを混在させていると思います。 umaisが言及したものと一緒に行く

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

、より良いアプローチ、何もまだのように、このための機能が内蔵さがないので、あなたが必要なものを見つけるために、すべてのレコードを反復処理することです。私が構築した機能は、データのページがあっても機能します。私がこれを行うと考えることができる唯一の他の方法は、セカンダリの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です。しかしこれは、あなたがチェックを置き換えるだけで何が変わるかを置き換えることができます。

関連する問題