類似のタイトルの投稿を見つけましたが、まだ問題を解決できません。間違いなく何か間違ったことをしている。
Kendoのグリッド構成には、コンテキスト(グリッド)を取り、選択した行を読み取るいくつかの機能があります。
change: function (e) {
refresh(this);
}
これが、「変更」イベントの構成方法です。
関数「refresh(grid)」では、次の方法で選択した行を取得しています:
refresh: function (grid) {
var selectedRows = grid.select();
var selectedRow = grid.dataItem(selectedRows[0]);
var id = selectedRow.Id;
}
グリッド行を手動で選択すると、このアプローチは完璧に機能します。しかし、プログラムで行を選択すると、「selectedRow」変数はnullです。
私は次の方法でプログラムを選択しています:
var grid = $("#grid").data("kendoGrid");
var rows = grid.dataSource.data();
var row = rows[rows.length - 1];
grid.select(row);
上記で悲しいことに、以前の「refresh(grid)」メソッド変数selectedRowはnullになります。
それについて誰か意見がありますか?なぜそれが起こったのですか?
ありがとう
グリッドのドキュメントによると、 "select" メソッドは "string"パラメーター(セレクター)またはjQuery要素を受け入れます。そのため、行を正しく選択する必要がある場合、現在のコードを次のように変更する必要があります。
var grid = $("#grid").data("kendoGrid");
//if you are using the "pageable" option of the grid
//you should get the visible rows using the .view() method
var models = grid.dataSource.data();
var model = models[models.length - 1];
var lastRowUid = model.uid;
//find the target row element:
var row = grid.table.find("[data-uid=" + lastRowUid + "]");
grid.select(row);