2013-02-25 1 views
0

의 순서 :있는 jqGrid 열이 나는 <code>remapColumns</code>를 사용하려고했습니다

grid.remapColumns(newOrder, false, false); 

하지만 이상한 문제를 가지고 - 열 머리글이 순서가 있지만, 열 정보를 정기적으로이 그대로 머물렀다했다. 어떻게 해결할 수 있을까요?

편집 : 당신은 그리드의 콘텐츠를 업데이트 할 경우 remapColumns의 두 번째 매개 변수는 true해야

전체 mthod

permutateGrid: function (gridID, columnsToShow, columnsToHide) { 
    var newOrder = []; 
    var grid = $(gridID); 

    for (var i = 0; i < columnsToShow.length; i++) { 
     newOrder.push(GridHelpers.getColumnSrcIndexByName(grid, columnsToShow[i])); 
    } 

    var columnsCount = grid.jqGrid("getGridParam", "colModel").length; 
    for (var i = 0; i < columnsCount; i++) { 
     if (newOrder.indexOf(i) === -1) { 
      newOrder.push(i); 
     } 
    } 

    showColumns(gridID, columnsToShow); 
    hideColumns(gridID, columnsToHide); 

    grid.jqGrid('remapColumns', newOrder, false, false); 
    grid[0].jqGrid().updateColumns(); 
}, 
+0

"칼럼 정보"란 무엇을 말합니까? 정확히 무엇이 잘못 되었습니까? 'colModel'과 길이가 같은'newOrder' 배열을 사용합니까? – Oleg

+0

열 정보는 열의 내용입니다. 'newOrder'는 'colModel'과 길이가 같습니다. 사용하는 jqGrid의 버전은 – skayred

+0

입니다. 나는'updateColumns'을 모른다. jqGrid에는 존재하지 않습니다. 게다가 나는 아직도 당신이 가진 문제를 이해하지 못합니다. "컬럼 내용"이란 무엇입니까? 표의 열 머리글을 의미합니까? 'permutateGrid' 함수를 호출하는 곳과 장소 (예 : 빈 그리드, 콜백 내부 등) – Oleg

답변

1

. remapColumns의 일반적인 사용은 grid.jqGrid("remapColumns", newOrder, true, true); (또는 grid.remapColumns(newOrder, true);)입니다.

+0

그 방법은 서브 그리드가있는 그리드에 적합합니까? – skayred

+0

내 문제는 다음과 같습니다 - 나는'subgrid'를 포함하여 모든 컬럼을 다시 매핑하려고 시도했으나'0' 인덱스에 머물러야합니다. – skayred

+0

@skayred : 다음 번에 스크린 샷을 포함 할 것을 권장합니다. 그것은 많은 것을 정리할 것입니다. 또한 대부분의 경우 jqGrid 매개 변수가있는 전체 JavaScript 코드가 필요합니다. – Oleg