2010-04-27 3 views
1

jqGrid 인라인 편집에서 처리 할 수있는 이벤트를 throw하는 경우 아는 사람 있습니까? 내가 이벤트를 취소에 "Esc 키를"처리 할 수 ​​있도록하고 싶습니다"Esc"에서 jqGrid 인라인 편집 이벤트 취소

jQuery('#list').jqGrid('editRow', 0, true, false, false, false, {onClose: function(){alert('onClose')}}, reloadGrid); 

: 다음 코드는 내가 달성하기 위해 노력하고있어 간단한 예입니다. onClose 이벤트는 양식 편집과 함께 사용할 수 있습니다.

respective section in jqGrid's documentation을 참조하십시오.

하지만 매우 불특정 인 extraparam 옵션 이외의 이벤트 현명한 제공하지 않습니다 인라인 편집 및 인라인 편집 문서 작동하지 않습니다 : 내가 할 수 없었던

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing

extraparam 옵션을 활용하는 방법을 알아보세요. 제안? 귀하의 링크에 따르면

답변

2

:

extraparam : 유형 이름의 배열 : 값. 설정시이 값은 다른 값과 함께 서버에 게시됩니다.

이렇게하면 사용자 지정 데이터를 POST를 통해 서버로 다시 전달할 수 있습니다. 이벤트 처리기를 추가 할 수 없습니다.

if (e.keyCode === 27) {$($t).jqGrid("restoreRow",rowid, afterrestorefunc);} 

그래서 이벤트가 발생합니다 :

editRow의있는 jqGrid 소스 코드는 Esc 키에 대해 다음 핸들러가 포함되어 있습니다. 문서에 따르면 :

afterrestorefunc 정의 된 경우이 함수는 행이 복원 된 후에 호출됩니다. 이 함수에 우리는 rowid를 전달합니다

따라서 escape를 누르면 afterrestorefunc이 트리거되지만 escape 키에 대한 명시 적 함수 콜백은 없습니다. 불행하게도이 이벤트는 행 Enter 키를 통해 저장 될 때라고도 :

if (e.keyCode === 13) { 
    var ta = e.target; 
    if(ta.tagName == 'TEXTAREA') return true; 
    $($t).jqGrid("saveRow",rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); 
    return false; 
} 

을하지만 당신이 조심하면 당신은 당신의 요구를 충족하기 위해 afterrestorefunc을 사용할 수 있습니다.

0

안녕하세요 저스틴은 신속한 응답과 도움에 감사드립니다.

afterrestorefunc 콜백이 내 문의에 대한 약속을 나타내지 만 여전히이 시점에서 정확히 찾고있는 것은 아닙니다. 내가 볼 수있는 한, 이것이 도움이되는 유일한 이유는 restoreRow 메소드를 호출하는 경우입니다. 하지만 내가 직면 한 문제는 editRow이 "Esc"키를 통해 닫히고 이벤트를 처리 할 수 ​​있어야한다는 것입니다. 그러나 귀하의 응답은 editRow 콜백에 대해 생각 날 잡았어과 afterrestorefunc 콜백 정의뿐만 아니라 거기에있다 :

jQuery("#grid_id").jqGrid('editRow',rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc); 

이 내가 필요 정확히 무엇이며 완벽하게 작동하는 것으로 나타납니다. 귀하의 대답은 내 질문에 100 % 적합하지는 않지만 분명히 올바른 방향으로 나를 가리켰습니다. 도와 주셔서 감사합니다.

관련 문제