2012-04-07 3 views
0

jqGrid 도구 모음과 인라인 삭제 버튼을 사용하여 행을 삭제합니다.jqgrid에서 삭제 한 후 그리드에 포커스를 설정하는 방법

삭제 명령 삭제 대화 상자가 나타납니다. 삭제가 확인되거나 취소 된 후 눈금에 포커스가 적용되지 않습니다. 그리드에서 마우스를 클릭하면 그리드에서 키보드 탐색이 작동합니다.

삭제 한 후 그리드에 포커스를 설정하거나 삭제가 취소되어 추가 마우스 클릭이 필요하지 않은 방법은 무엇입니까? 도구 모음에서

삭제 버튼 : 열에서

 $.extend($.jgrid.del, { 
      top: window.innerHeight/2-100, 
      left: window.innerWidth/2-120, 
      closeOnEscape: true, 
      errorTextFormat: function (response) { 
       clearModeless(); 
       return decodeErrorMessage(response.responseText, '', ''); 
       }, 
      reloadAfterSubmit: false, 
      afterShowForm: function($form) { 
       var form = $form.parent()[0]; 

       $("#dData",form).attr("tabindex","1000"); 
       $("#eData",form).attr("tabindex","1001"); 
       setTimeout(function() { 
        $("#dData",form).focus(); 
       },50); 
      } 
      }); 


      $grid.jqGrid("navGrid", "#grid_toppager", { 

      search: true, 
      del: true, 
      add: true, 
      view: true, 
      edit: true 
      }, 

      {  url: '/erp/Grid/Edit?_entity=Klient'}, 

     {  url: '/erp/Grid/Add?_entity=Klient' }, 

     { url: '/erp/Grid/Delete?_entity=Klient', 

      beforeShowForm: function(form) { 
      var selected = $grid.jqGrid('getGridParam','selarrrow'); 
      $("td.delmsg",form).html('Rows '+selected.length +'<br/>' + 
       'Delete?'); 
      } 
     } 
); 

삭제 버튼 : '

   colModel: [{"name":"_actions","formatter":"actions","viewable":false,"formatoptions":{"editbutton":true,"keys":true,"onSuccess":function (jqXHR) { jqXHRFromOnSuccess=jqXHR;return true;} 
,"afterSave":function (rowId) { 
    var data = $.parseJSON(jqXHRFromOnSuccess.responseText); 
$grid.jqGrid('setRowData', rowId, { Kood: data.PrimaryKeyValues[0] }); 
cancelEditing($grid);afterGridSaveFunc(rowId,jqXHRFromOnSuccess);jqXHRFromOnSuccess=null; 
updateButtonState($grid); 
} 
,"restoreAfterError":false,"onError":errorfunc 
,"extraparam":{"_dokdata":FormData 
},"afterRestore":function() { 
      updateButtonState($grid); 
     } 
,"onEdit":onInlineEdit 
,"delbutton":true,"delOptions":{"url":"Delete","afterComplete":function (response, postdata, formid) { summarefresh($grid); } 
}}}, 

답변

1

그것은 보인다 내 당신이 afterComplete의 내부에 다른 요소 그리드 또는 일부에 포커스를 설정해야합니다. reloadAfterSubmit: false을 사용하므로 초점을 맞추기에 아무런 문제가 없습니다. 현재 summarefresh 기능을 호출합니다. summarefresh 호출 후 바로 포커스를 설정할 수 있습니다.

+0

옵션을 삭제하려면'afterComplete : function() {alert ('afterComplete'); $ grid [0] .focus();}'를 추가했습니다. Esc 키 또는 취소 버튼을 눌러 질문을 삭제하면 메시지 상자가 나타나지 않고 키가 작동하지 않습니다. 삭제가 취소 된 후 다시 포커스를 그리드로 설정하는 방법? – Andrus

+0

또한 서버가 컨트롤러 삭제에서 오류를 반환하고 취소를 누르면 키가 작동하지 않습니다. 또한'$ grid [0] .focus()'는 그리드에만 포커스를 설정합니다. 'multiselect : true'가 사용됩니다. 가장 가까운 삭제 된 행 또는 첫 번째 행으로 포커스를 설정하여 삭제 후 위쪽/아래쪽 화살표 키가 텍스트/이전 행으로 이동하도록하려면 어떻게해야합니까? – Andrus

관련 문제