2017-02-16 1 views
0

enter image description here 우리는 jqgrid 4.3에서 아래 코드를 사용했습니다. 이제 4.13.6으로 업그레이드 중입니다. 내 그리드를 작성하는 동안free-jqgrid : getLocalRow는 free-jqgrid4.13.6에서 false를 반환합니다.

var grid = $("#myGrid").jqGrid('getRowData'); 
$.each(grid, function(key, value) { 
    selectedRow = key+1; 
    var rowData = $("#myGrid").jqGrid('getLocalRow', selectedRow); 
}); 

내가 어떤 ID를 사용하고 있지 않다 ... 아래 코드는 4.3에서 일했지만, 4.13, 그것은 ... 어떤 도움을 거짓하시기 바랍니다 반환합니다. 데이터 유형 : json, rownumbers : true.

디버깅 할 때 각 행의 ID는 'jqg41', 'jqg42'등입니다 ... 그리고 때로는 'jqg61', 'jqg62'등입니다 ... 추가되는 임의의 숫자입니다 'jqg'

좀 더 코드 (그러나 완료 코드) 후

$grid.jqGrid({ 
        datatype: 'json', 
        url: 'myUrl/byFileId.do?custId='+custId, 
        mtype: 'GET', 
        ajaxSubgridOptions: { async: false }, 
        colNames:[ col1, col2 ...], 
        colModel:[  
         . . . 
         . . . 
         . . . 
        ], 
        headertitles:true, 
        rowNum:999, 
        rowList:[], 
        pager: '', 
        records: 1000, 
        pgbuttons : false, 
        viewrecords : false, 
        pgtext : null, 
        pginput : false, 
        gridview:true, 
        ignoreCase:true, 
        rownumbers:true, 
        sortname: 'invdate', 
        viewrecords: true, 
        sortorder: 'desc', 
        multiselect: true, 
        caption: "Customer Search Result", 
        height: '100%', 
        editurl: 'clientArray', 
        autoencode: true, 
        loadonce: true, 
        multiselectWidth: 30, 
        width: rmtPageTitleWidth, 
        viewsortcols : [true,'vertical',true], 
        onSortCol: function (index, idxcol, sortorder) { 
         rowIdAndNoOfRowPair = []; 
         if (this.p.lastsort >= 0 && this.p.lastsort !== idxcol 
           && this.p.colModel[this.p.lastsort].sortable !== false) { 
          $(this.grid.headers[this.p.lastsort].el).find(">div.ui-jqgrid-sortable>span.s-ico").show(); 
         } 
        }, 

enter image description here

+0

죄송 합니다만, 게시하는 코드는 절대 잘못되었습니다. 'key'가 rowid이면'key + 1 '이 아닙니다. 그것은 어떤 셸입니까? ** 선택된 ** 행의 데이터 또는 그리드의 모든 로컬 데이터를 가져와야합니까? ROWID를 지정하지 않는 이유는 무엇입니까? 어떤 데이터와 그리드를 사용합니까? 그런데 나는'customerId' 칼럼의 값을 rowid로 사용하도록 jqGrid에 알리는'customerId' 칼럼에'key : true' 속성을 설정하라는 제안으로 이전 질문에 대한 나의 대답을 시작했다. ** 당신이 설명해야 할 코드는 여전히 잘못되어 있습니다. 어떻게해야합니까 ** ** – Oleg

+0

[article] (https://free-jqgrid.github.io/getting-started/index.html#the_first_grid), 어디 rowid 무엇인지 설명합니다. [그림] (https://free-jqgrid.github.io/getting-started/index.html#grid-internal-div) 및 아래 설명을 참조하십시오. – Oleg

+0

@Oleg : jqgrid 4.3에서 'key'는 항상 0을 표시하지만 행의 ID는 '1'부터 시작합니다. 그 이유는 "key + 1"이었습니다. 이제 두 번째 질문에 대해 grid에 같은 id의 고객이 여러 명있을 수 있기 때문에 customer id를 key = true로 만들 수 없습니다. 각 행 (선택 및 선택되지 않은 선택)을 통해 데이터를 얻으면 자바 스크립트에서 해당 데이터를 논리에 적용한 다음 백엔드로 보낼 수 있습니다. 이제 왜 jqg <임의의 숫자로 행 ID를 생성하는지 궁금합니다. > – SKumar

답변

0

당신은 사용할 수 있습니다

var localData = $("#myGrid").jqGrid("getGridParam", "data"); 

을 사용하여 모든 로컬 데이터를 배열로 가져옵니다. 그것은 입니다. 참조 번호은 jqGrid의 내부 데이터입니다.

업데이트 : 그리드 정렬 또는 로컬을 여과하고 같은 순서로 모든 행의 데이터를 얻으려면 입니다 경우, 대신 datalastSelectedData 매개 변수를 얻어야한다. 서버에서로드 한 후 데이터를 로컬에서 강제로 정렬 할 수 있습니다. forceClientSorting: true 매개 변수 jqGrid를 loadonce: true으로 추가합니다.

데모 https://jsfiddle.net/OlegKi/akv51mdq/은 ID 정보가없는 로컬 데이터의 경우 lastSelectedData을 보여줍니다. 또 다른 데모 https://jsfiddle.net/OlegKi/Ljejoh21/은 서버에서 한 번에로드 된 데이터와 동일한 작업을 수행합니다.

관련 문제