2009-09-04 3 views
2

그리드에서 인라인 편집을하고 있지만 편집 할 수있는 이벤트가없는 것 같습니다.jqGrid : 내가 그리드에 대해 정의한 이벤트가 실행되지 않는 이유는 무엇입니까?

여기에 내가 afterSubmit : 사용자가 그리드의 수량 필드를 편집 한 후에 실행하지만 결코 실행되지 않습니다.

$('#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

editRow의 속성 인수에서 afterSubmit을 전달해야한다고 생각합니다.

따라서, 당신은 너무처럼 afterSubmit를 이동해야 :이 점에서 도움 editGridRow 종류에 대한

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

워드 프로세서를.

위의 샘플은 모달을 일으킬 것입니다 (afterSubmit이 사용되는 유일한 지점이므로). 당신이 indline 편집을 사용하여 성공적으로 업데이트 후에 무언가를하고 싶은 경우에, 당신은/여기 JS에서 editRow 방법 서명의 onSelectRow

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

의 다음 내부를 할 수있을

을 grid.inlineedit.js한다
editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftesarvefunc,errorfunc, afterrestorefunc) { 
+0

나는 당신이 올바른 길에 있다고 생각합니다. 그러나 해당 editRow 문에는 두 개의 매개 변수 .editRow (id, true)가 사용되었습니다. 부울 'true'매개 변수는 어떻게 되었습니까? 세포가 없으면 세포가 더 이상 제출하지 않는 것 같습니다. –

+0

죄송합니다. editGridRow 여야합니다. – seth

+0

나는 팝업 상자를 피하려고했다. 그리드에서 인라인 편집을 위해 해당 동작을 얻으려고하는 것이 이상적입니다. –

1

editRow 메서드에서 aftersavefunc 이벤트를 사용하여 찾고있는 유일한 경우 서버 응답을 얻을 수도 있습니다.

관련 문제