2011-12-07 2 views
1

JQGrid를 사용하고 있고 "새로 추가"버튼이 정의되어 있습니다.JQGrid에서 행 선택 취소 이벤트가 발생했습니다.

$(gridId).jqGrid('navButtonAdd', pagerId, { 
    caption: "Add Record", 
    buttonicon: "ui-icon-add", 
    onClickButton: function (id) { 
     var newId = -1; 
     $('#addButton').addClass('ui-state-disabled'); 
     var datarow = { Id: newId, 'Active': true, 'Location': '', 'LabCode': '', 'Crops': '', 'LabManager': '', 'MarkerChoice': '', 'AllowPlates': '', 'AllowTape': '' }; 
     var su = jQuery(gridId).jqGrid('addRowData', newId, datarow, "last"); 
     if (su) { 
      $(gridId).jqGrid('setSelection', newId); 
     } 
    }, 
    position: "last", 
    id: "addButton" 
}); 

보시다시피 버튼을 클릭하면 비활성화되므로 다시 클릭 할 수 없습니다.

$('#addButton').removeClass('ui-state-disabled'); 

하지만이 곳을 할 확실하지 않다 : 내 문제는 사용자가 클릭이 추가되면 그때 추가 버튼을 다시 활성화해야 ESC 명중이다? 선택 취소 된 이벤트 또는 이와 동등한 행을 사용할 수 있습니까?

답변

2

onSelectRow 방법이 있습니다. 선택한 행을 캡처 할 수 있으며 변경되거나 -1 인 경우 removeClass() 코드로 호출 할 수 있습니다.

var lastSel; 
jQuery("#gridid").jqGrid({ 
... 
    onSelectRow: function(id){ 
     if(id && id!==lastSel){ 
     ... 
     lastSel=id; 
     } 
    }, 
... 
}); 

편집 : 트랩 ESC 키 : Esc 키를 누르면

/* could use window or a specific element if required */ 
$(window).keydown(function(e) { // or keyup, keypress 
     if (e.keyCode == '27') { // ESC 
      e.preventDefault(); 
      // do something with the grid 
     } 
}); 
+0

Unfortuantely onSelectRow가 발생하지 않습니다. –

+0

귀하의 질문을 읽지 않고, ESC를 눌렀을 때만 뭔가를하고 싶다는 것을 깨닫지 못했습니다. 가능한 해결책은 내 대답 편집을 참조하십시오. – Terry

+0

답을 읽기 전에 똑같은 것을 발견했습니다. 약간의 해킹처럼 보이지만 작동합니다! 고맙습니다! –

관련 문제