2009-09-04 24 views
2

グリッド上でインライン編集を行っていますが、その編集に関連するイベントは発生していないようです。jqGrid:グリッドに対して定義したイベントが発射編集されないのはなぜですか?

ここで私はafterSubmitを持っています:ユーザーがグリッドのQuantityフィールドを編集した後に起動しますが、決して起動しません。

$('#tblLines').jqGrid({ 
     url: createUrl('/CRA/GetLines/'), 
     editurl: '/CRA/EditModifyLine', 
     emptyrecords: '', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['Group', 'Description', 'Quantity'], 
     colModel: [ 
     { name: 'Group', index: 'Group', width: 100, align: 'left' }, 
     { name: 'Description', index: 'Description', width: 400, align: 'left' }, 
     { name: 'Quantity', index: 'Quantity', width: 150, align: 'left', editable: true }, 
     pager: jQuery('#pgrLines'), 
     rowNum: 10, 
     rowList: [5, 10, 20, 50], 
     sortname: 'Group', 
     sortorder: "desc", 
     viewrecords: true, 
     caption: 'Core Group Lines', 
     onSelectRow: function(id) { 
      $('#tblCoreGroupLines').editRow(id, true); 
      lastsel = id; 
     }, 
     afterSubmit: function(response, postdata) { 
      alert('got here'); 
     }, 
     postData: { craId: $('#CraId').val() } 
    }); 

イベントをnavControlの一部として定義しようとしましたが、どちらも機能しません。インライン編集はうまくいきます - POSTが成功し、結果が戻ってくると、それに結びつくべきイベントには決してヒットしません。数量フィールドの変更に結びつくすべてのイベントを試しましたが、どれも機能しません。

イベントを正しい場所に定義しましたか?私はグリッドや何かのプロパティを逃していますか?

答えて

8

プロパティの引数のafterSubmiteditRowに渡す必要があると思います。

したがって、あなたはとてもようafterSubmitを移動する必要があります。この点で助けのeditGridRow種類について

..... 
onSelectRow: function(id) { 
    $('#tblCoreGroupLines').editGridRow(id, { afterSubmit: function(response, postdata) { 
      alert('got here'); 
     } 
    }); 
    lastsel = id; 
}, 
... 

ドキュメント。

上記のサンプルは、モーダルを引き起こします(afterSubmitが使用される唯一のスポットです)。あなたはindline編集を使用して更新が成功した後、何かをしたい場合は、onSelectRow

$('#tblCoreGroupLines').editGridRow(id,true, undefined, function(res) { 
    // res is the response object from the $.ajax call 
    alert('success!!') 
}); 

の内部で次の操作を行うことができるはずです。ここJS/grid.inlineedit.js

からeditRowためのメソッドシグネチャです
editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftesarvefunc,errorfunc, afterrestorefunc) { 
+0

あなたは正しい方向にいると思います。ただし、そのeditRowステートメントには2つのパラメーター.editRow(id、true)が使用されていました。ブール値の 'true'パラメータはどうなりましたか?細胞はそれなしではもう提出しないようです。 –

+0

申し訳ありませんが、editGridRowです。 – seth

+0

私はポップアップボックスを避けることを望んでいました。理想的には、グリッド内のインライン編集のための動作を得たいと思っていました。 –

1

editRowメソッドでaftersavefuncイベントを使用して、探しているのが唯一の場合はサーバーの応答を取得することもできます。

関連する問題