2015-10-15 6 views
8

類似のタイトルの記事は見つかりましたが、引き続き問題を解決できません。私は間違ったことをしています。剣道グリッド構成でプログラムによって選択してください剣道グリッド行

コンテキストを取るいくつかの機能(グリッド)を有し、選択された行を読み取る:

​​

これは私が「変化」イベントを構成する方法です。

機能で

「リフレッシュ(グリッド)」私は、次のように選択した行を取得しています:私は手動でグリッド行を選択したときに

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); 

上記では、以前の方法変数selectedRowはnullになります「(グリッド)をリフレッシュ」。

誰かがそれについていくつかの意見を持っていますか?なぜそれが起こったのですか?

おかげ

答えて

12

グリッドドキュメントを"select"方法よれば、「文字列」パラメータ(セレクタ)または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 = rows[rows.length - 1]; 
var lastRowUid = model.uid; 

//find the target row element: 
var row = grid.table.find("[data-uid=" + lastRowUid + "]"); 

grid.select(row); 
+0

おかげで、行のみ変更した必要変わる[rows.lengthを - 1];モデル[rows.length - 1]に; – s1cart3r

関連する問題