2012-06-08 1 views
1

새 행 추가 및 jqGrid에서 행 삭제를 테스트하려고하는데 그리드가 새 행을 표시하거나 새로 고치지 않아 행 추가/삭제 후 삭제 된 행 서버 사이드 피스는 추가/삭제하기위한 장소에 아직 없기 때문에 데이터를 그리드에로드하는 데 사용한 것과 동일한 URL을 editurl에 입력했습니다.jqGrid : editurl이 유효하지 않은 경우 navGrid reloadAfterSubmit이 새 행을 추가하지 않습니다.

.navGrid('#' + id + '-pager', 
      {addtext: 'Add Code Value', deltext: 'Delete Code Value', edit:false,add:true,del:true,search:false, refresh:false}, 
      {closeAfterAdd: true, reloadAfterSubmit: true} /* Edit options */, 
      {closeAfterAdd: true, reloadAfterSubmit: true} /* Add options */, 
      {reloadAfterSubmit: true} /* Delete options */); 

내가 여기에 뭔가가 없습니까? 나는 reloadAfterSubmit이 추가/삭제 된 행으로 그리드를 업데이트해야한다고 생각 했습니까?

감사합니다.

편집 : 내 사용자 지정이 불필요하게 복잡한 기능을 추가 (참고 :이 클라이언트 측에만 추가해야합니다) 당신이 더미 URL을 사용하는 경우 다음이하지 않는,

addfunc = function() { 
//Find dirty unsaved row if any and add to the grid before adding empty row 

       var dirtyRow = jQuery('#' + id).find('tr[editable]'); 
       var dirtyRowId = dirtyRow.attr('id'); 
       if (dirtyRow.length > 0) { 
        dirtyRow.addClass('data-isDirty', true); 
        var rowData = jQuery('#' + id).jqGrid('getRowData', dirtyRowId); 
        jQuery('#' + id).jqGrid('addRowData', rowId, dirtyRowId); 
       //The row when added to the grid should not be editable but a normal row 

       dirtyRow.find('input').each(function() { 
         var text = jQuery(this).attr('value'); 
         jQuery(this).replaceWith(text); 
        }); 
       } 
       var rowId = Math.floor(Math.random()*1000) + 'add_new'; 
       jQuery('#' + id).jqGrid('addRowData', rowId, that.getEmptyRow(colModel), 'first'); 
       var firstRowId = jQuery('#' + id).jqGrid('getDataIDs')[0]; 

          //Add an empty editable row at the top 
       jQuery('#' + id).jqGrid('editRow', firstRowId); 
      } 

답변

1

HTTP POST 요청에 대한 응답. mtype: "GET" 옵션을 사용하여 문제를 해결할 수 있습니다. 경우에 당신은 "/"처럼 같은 사이트에서 기존 서버 URL을 사용할 수있는 jqGrid의

.navGrid('#' + id + '-pager', 
    {addtext: 'Add Code Value', deltext: 'Delete Code Value', 
     edit:false,add:true,del:true,search:false, refresh:false}, 
    {mtype: "GET", closeAfterAdd: true, reloadAfterSubmit: true} /* Edit options */, 
    {mtype: "GET", closeAfterAdd: true, reloadAfterSubmit: true} /* Add options */, 
    {mtype: "GET", reloadAfterSubmit: true} /* Delete options */); 

editurl으로 매개 변수는 여전히 새 행을 확인할 수 없습니다 ... editurl: "/"

+0

음과 같은 기존의 URL을 사용할 수 있습니다 추가됩니다. 새로운 행을 클라이언트 측에 추가하고 서버에 변경 사항을 보내지 않으려면 어떻게해야합니까? – Ramya

+0

이 URL은 서버에 게시하지 않고 로컬로 행을 추가하는 방법을 보여 주지만 이것을 활성화하기 위해 설정해야하는 매개 변수를 파악할 수는 없습니다. http://www.trirand.com/blog/jqgrid/jqgrid.html – Ramya

+0

@Ramya : 새 행을 로컬에 추가하는 것은 매우 쉽습니다 :'addRowData'를 사용할 수 있습니다. 당신 질문에 묻지 않은 것 같아요. – Oleg

관련 문제