2

グリッドでインライン編集を行っていますが、その編集に関連付けられるイベントを発生させることができないようです。

ここに 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 は成功し、結果が返されます。関連付けられるべきイベントにヒットすることはありません。Quantity フィールドの変更に関連するすべてのイベントを試しましたが、どれも機能しません。

イベントを正しい場所に定義しましたか? グリッドまたは何かにプロパティがありませんか?

4

2 に答える 2

8

afterSubmitプロパティ引数で をに渡す必要があると思いますeditRow

afterSubmitしたがって、次のように移動する必要があります。

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

editGridRowに関するドキュメントは、この点で役立ちます。

ただし、上記のサンプルではモーダルが発生します (afterSubmit が使用される唯一の場所であるため)。インライン編集を使用して更新が成功した後に何かをしたい場合は、 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) {
于 2009-09-04T22:40:15.907 に答える
1

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

于 2010-09-26T21:04:15.500 に答える