0

答えは明らかなように思われるので、この質問をして申し訳ありませんが、見つけることができません。

挿入後にグリッドを更新したいので、詳細グリッドの作成アクションの後に「完了」イベントを処理しています。しかし、私はそれに賢明な方法を見つけることができません。これが私がやったことです。私はそれをすべて HTML と JavaScript で行っています。詳細グリッドが初期化されると、マスター レコードのキーをサフィックスとして「panegrid」という名前を付けます。以下のように:

   function detailInit(e) {
       if (e.data.Id != '') { // Must be a Create for Lite so don't create a grid
           $("<div id='panegrid" + e.data.Id + "' />").appendTo(e.detailCell).kendoGrid({
               dataSource: {

そして、作成が完了すると、次のようなグリッドが見つかります。

complete: function (e) {
    var selector = '#panegrid' + $.parseJSON(e.responseText).IGUnit_Id;
    $(selector).data('kendoGrid').dataSource.read();
 }

これは機能します (IGUnit_Id はマスター グリッドの主キーです) が、このようにする必要があるのは正しくないようです。確かに、セレクターをいじらずに、完全なイベント内から直接グリッドを見つける「正しい方法」があります。

このようなばかげた質問をして申し訳ありません。

4

1 に答える 1

0

作成時にグリッドへの参照を保存する場合は、単純に変数を割り当て.data('kendoGrid')て作成式に追加します。

var myGrid = $("<div id='panegrid" + e.data.Id + "' />").appendTo(e.detailCell).kendoGrid({
    dataSource: {
        // etc...
    }
}).data('kendoGrid');

じゃあ後で

myGrid.dataSource.read();

もちろん、それをローカル変数にしたくないでしょう。コードの残りの部分から見える何かのプロパティとして追加する必要がありますが、その作業はあなたに任せます。

于 2013-07-18T02:29:48.990 に答える