9

kendoGrid で特定の行を選択する必要がありますが、data-uid ではなく (グリッドの dataSource が再度読み込まれると data-uid が変更されるため)、行 itemID によって選択する必要があります。投稿を見ましたが、必要なものではない uid で行を選択するだけです。実際には HTML5 アプリケーションを再起動する必要があり、グリッドが読み込まれると、特定の項目を選択する必要があります。これは私が見てきたものです

デモ: jsfiddle.net/ruse​​v/qvKRk/3/

たとえば、オブジェクトには がOrderID as IDあり、グリッドがロードされるたびに、 とは異なり、同じになりuidます。OrderIDuid

4

4 に答える 4

32

行 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 + "']");
于 2014-09-03T11:41:00.677 に答える
2

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 です。ただし、これは、チェックを置き換えるだけで必要な変数に置き換えることができます。

于 2015-02-13T16:59:54.503 に答える
1

私がなんとかした回避策は、すべての行を調べて、どの行モデルがパラメーターと同じIDを持っているかを確認し、その行のdata-uidを取得し、data-uidを介してアイテムを選択することでした。提案がなかったので、私にとってはうまく機能しています。今のところ、それがより良い答えです。

于 2013-08-19T09:16:26.393 に答える