2016-03-21 10 views
2

DataSource内のいくつかのものを手動で変更し、プロパティ.dirty = trueを設定していますが、リフレッシュ時に正しく動作しますが、グリッドに赤い汚れた三角形を置いていません。実際に要素を直接プッシュする以外に、これを手動で行う良い方法はありますか?私が言ったように剣道UI手動でセル汚れインジケータを設定する

var item = gridDataSource.get(id); 
item.dirty = true; 
item.SomeOtherlId = 5; 
kendoGrid.refresh(); 

、すべてが私はちょうど赤いdoritoを取得していないですし、より良い方法がある場合はJavaScriptでそれを妨害希望されない、正しく動作しています。ありがとうございました。

+0

カバー何を "JavaScriptでそれを妨害" ん?このカテゴリにクラス "k-dirty-cell"を追加していますか? – Fruitbat

+0

はい、現在、私はセルにこれをやっています:.addClass( 'k-dirty-cell')。prepend( '') - それはちょうど私にハッキーのようですか? – naspinski

答えて

2

kendo jsファイルを見ると、k-dirty-cell gubbinsが変更ハンドラに適用されているようです。しかし、ハンドラは、セルが編集モードにあるときにのみ(私が作ることができる限り)取り付けられます。

これを処理する正しい方法は、セルを編集モードにしてから、changeイベントでトリガーを呼び出すことです。私はそれを働かせることができず、率直に言って、それはeditCell()に渡すセルを見つける大規模なPITAです。

代わりに、ハンドラ関数を直接呼び出すことができます。おそらくハックのビットが、これらのウィジェットのコースのためのパーと思われる。

item.SomeOtherlId = 5; 
grid._modelChange({ field: "SomeOtherId", model: item }); 

dojo example

関連する問題