2012-07-10 2 views
0

편집 및 행 데이터 변경 내용을 저장하는 사용자 지정 설치가있는 JQGrid가 있습니다. 그러나 다소 혼란 스럽습니다. 내 select의 데이터가 내 게시물에 나타나지 않고 현재 선택된 행의 값을 변경하는 행을 편집하는 동안 다른 행을 선택할 수 있으며 편집 프로세스에 버그가 발생합니다. JQGrid 편집 선택 및 저장

$.ajax({ 
    type: 'POST', 
    url: '/myserver/myservice.asmx/GetMyData', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    data: params 
}).success(function(data) { 
    clearNotSatisifiedConcessionList(); 
    var rowid; 
    var response = data.d; 
    if (response.length > 0) { 
     $('p.infotext').html('<span class="ui-icon ui-icon-info"></span><strong>Information: </strong>Click a row, then click <b><i>Edit</i></b>'); 
     var lastsel2; 
     var grid = $("#myList").jqGrid({ 
      datatype: "local", 
      data: response, 
      height: '100%', 
      autowidth: true, 
      hidegrid: false, 
      ajaxSelectOptions: { type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json' }, 
      colNames: ['ID', 'Date', 'col1', 'col2', 'col3'], 
      colModel: [ 
       { name: 'ID', index: 'ID', width: 20 }, 
       { name: 'Date', index: 'Date', width: 30, sorttype: 'date', formatter: 'date', formatoptions: { srcformat: 'd/m/Y', newformat: 'd/m/Y' }, datefmt: 'd/m/Y' }, 
       { name: 'col1', index: 'col1', width: 20 }, 
       { name: 'col2', index: 'col2', width: 25, sorttype: 'int' }, 
       { name: 'col3', index: 'col3', width: 35, sorttype: 'int' } 
      ], 
      pager: '#MyPager', 
      rowNum: 15, 
      editurl: '/myserver/myservice.asmx/SaveMyData', 
      editData : {"SmodifiedByPersonRef":getCurrentUserPersonRef(), "modifiedByPostRef": getCurrentUserPostRef()}, 
      sortname: 'Date', 
      sortorder: 'desc', 
      viewrecords: true, 
      gridview: true, 
      caption: '' 
     }); 
    } else { 
     clearList(); 
     $('p.infotext').html('<span class="ui-icon ui-icon-info"></span><strong>Information: </strong>No data found'); 
    } 
}).error(function(jqXHR, textStatus, errorThrown) { 
    errorHandler(errorThrown, 'List', 'Load List'); 
}); 

제발 내 편집 위의 선택 내 목록을하고 인터넷을 트롤 어업을 아직 답을 나에게 제공 한 사실이 없습니다로, 사람이 용액과 유사한하신 질문이나 의견이 기능
$("#editRow").click(function(event) { 
    event.preventDefault(); 
    var selectedRow = $('#myList').jqGrid('getGridParam', 'selrow'); 
    if (selectedRow === null) { 
     alert('No row Selected!'); 
    }else { 
     $("#myList").jqGrid('editRow', selectedRow); 
     $(".editButton").hide(); 
     $(".saveButton").show(); 
     $(".cancelButton").show();  
    } 
}); 

$("#saveRow").click(function(event) { 
    event.preventDefault(); 
    var selectedRow = $('#myList').jqGrid('getGridParam', 'selrow'); 
    var coincessionId = $("#myList").getCell(selectedRow, "ID"); 
    $("#myList").jqGrid('saveRow', coincessionId); 
    $(".saveButton").hide(); 
    $(".cancelButton").hide(); 
    $(".editButton").show(); 
}); 

$("#cancelEdit").click(function(event) { 
    event.preventDefault(); 
    var selectedRow = $('#myList').jqGrid('getGridParam', 'selrow'); 
    $("#myList").jqGrid('restoreRow', selectedRow); 
    $(".saveButton").hide(); 
    $(".cancelButton").hide(); 
    $(".editButton").show(); 
}); 

취소 주저하지 말고 물어보십시오. 그러나이 코드는이 목록에 포함될 응용 프로그램의 성격으로 인해 많은 수정 사항을 가지고 있습니다.

답변

0

편집 할 때 windowid에 rowid를 추가하고이 변수가 취소 될 때 선택되고 현재 선택된 행이 원래 선택되어있는 행인지 확인하는 처리기가 추가되었습니다. 느슨한 작업