2017-11-29 2 views
1

나는 그룹핑 방법에서 jqgrid를 구현했다. 기본적으로 나는 groupCollapse:true 매개 변수 jqgrid를 사용하여 그룹을 접음 상태로 유지했습니다. 내 표가 잘 작동하지만 그룹을 확장하고 열을 정렬하면 전체 표가 다시로드되고 열의 확장 상태가 유지되지 않습니다. 정렬하는 동안 펼친 상태를 유지하려면 어떻게해야합니까?jqgrid 그룹화에서 확장/축소 상태를 유지하는 방법은 무엇입니까?

+0

항상하는 ** 버전을 쓰기 바랍니다 ** 당신이 (사용)를 사용하여있는 jqGrid의, 그리고 어떤에서 ** 포크 ** ([무료있는 jqGrid] (HTTPS ://github.com/free-jqgrid/jqGrid), 상업용 [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) 또는 버전 <= 4.7의 이전 jqGrid). 요구 사항은 "무료 jqGrid"에서 쉽게 구현할 수 있습니다. 부울을 반환하는 콜백 함수로'groupCollapse'를 사용할 수 있습니다. onClickGroup' 콜백 또는'jqGridGroupingClickGroup' 이벤트와 함께 그룹화 상태를 쉽게 유지할 수 있습니다. – Oleg

+0

@Oleg 무료 비영리 버전 인 Guriddo jqGrid JS를 사용했습니다. 5.2.1. 이미 stackoverflows에 대한 귀하의 게시물을 추천했지만 나는 당신이 jqgrid의 구현을 가지고 있다는 것을 모르고 있습니다. 정렬시 확장/축소 상태를 유지하는 데 도움이된다면 구현을 사용할 준비가되었습니다. 로직을 그리드에 통합 할 수 있도록 샘플 코드를주세요. –

+0

Guriddo jqGrid JS 5.2.1은 ** 상용 ** 제품입니다! 텍스트 편집기에서'jquery.jqGrid.min.js' 파일을 열 수 있으며, 시작 주석에서'License : http : //guriddo.net/? page_id = 103334'를 볼 수 있습니다. 해당 링크 http://guriddo.net/?page_id=103334에는 제품 가격이 표시됩니다. [The post] (http://www.trirand.com/blog/?p=1438)는 이름을 바꾸고 제품 광고를 발표했다. MIT 라이센스로 언제든지 제품 포크를 만들 수 있으며 2014 년 말에 jqGrid 4.7 (MIT 라이센스를 보유한 마지막 버전이며 무료로 사용 가능) 포크를 만들었습니다. 무료 jqGrid 4.15.2가 현재 버전입니다. – Oleg

답변

1

항상 빠른 시간 내에 연락 드릴 것입니다있는 버전을 사용있는 jqGrid의 (사용할 수 있습니다), 그리고 (버전 < = 4.7 free jqGrid, 상업 Guriddo jqGrid JS하거나 이전있는 jqGrid)하는 포크에서.

귀하의 요구 사항은 내가 개발 한 "무료 jqGrid"에서 쉽게 실현 될 수 있습니다. 부울을 반환하는 콜백 함수로 groupCollapse을 사용할 수 있습니다 (the issue 참조). onClickGroup 콜백 또는 jqGridGroupingClickGroup 이벤트와 결합하여 쉽게 그룹화 상태를 유지할 수 있습니다.

업데이트]

: 나는 하나가 그룹 그리드에 붕괴 상태를 유지할 수있는 방법을 보여줍니다 데모 https://jsfiddle.net/92da8xhq/을 만들었습니다. 아래에서는 코드를 간단히 설명합니다. 데모에서는 한 수준의 그룹화를 사용하여 이해하기 쉽도록 코드를 작성합니다.

jqGrid에 사용자 정의 collapsedGroups: {} 매개 변수를 추가했습니다. 매개 변수를 사용하여 접힌 그룹 목록을 보관합니다. 데모에서 collapsedGroups: { "test2": true }을 사용하여 처음에 축소 된 그룹으로 그리드를 만들 수 있음을 보여주었습니다. 우리는 collapsedGroups 객체의 값을 사용하지 않습니다. test2 속성의 존재는 예를 들어 값이 test2 인 그룹이 축소 된 상태임을 나타냅니다.

데모에서는 groupCollapse 속성 인 groupingView을 콜백 기능으로 정의했습니다. 그룹 축소 기의 목록에서인지 기능 검사 본다 그룹의 축소/확대 후에 별도로 정의 collapsedGroups 파라미터의 속성을 조정

groupingView: { 
    groupField: ["name"], 
    groupCollapse: function (options) { 
     var collapsedGroups = $(this).jqGrid("getGridParam", "collapsedGroups") || {}; 
     // options looks like { group: number, rowid: string } 
     if (collapsedGroups.hasOwnProperty(options.group.value)) { 
      return true; 
     } 
     return false; 
    } 
} 

(어떤 값 collapsedGroups 속성을 갖는다). 우리는 다음과 같은 onClickGroup 콜백 사용

onClickGroup: function (hid, isCollapsed) { 
    var p = $(this).jqGrid("getGridParam"), 
     iGroup = $(this).jqGrid("getGroupHeaderIndex", hid), 
     group = p.groupingView.groups[iGroup]; 

    if (p.collapsedGroups == null) { 
     // be sure that the custom parameter is initialized as an empty object 
     p.collapsedGroups = {}; 
    } 
    if (isCollapsed) { 
     // we place group.value in the p.collapsedGroups object as a property 
     if (!p.collapsedGroups.hasOwnProperty(group.value)) { 
      // create the property group.value in with some value 
      p.collapsedGroups[group.value] = true; 
     } 
    } else if (p.collapsedGroups.hasOwnProperty(group.value)) { 
     // remove group.value property from the p.collapsedGroups object 
     delete p.collapsedGroups[group.value]; 
    } 
} 
+0

이제 코드를 살펴보고 이해했습니다. collapsedGroups 매개 변수를 빈'collapsedGroups : {}'로 유지하고 코드를 실행했습니다. 이제 모든 그룹은 기본적으로 확장되어 (==> (1)), 축소 아이콘을 클릭하면'onClickGroup' 콜백은 collapsed 그룹을 매개 변수'collapsedGroups'에 추가합니다. ==> (1) 이것은 우리의 요구 사항이 약간 다르다는 것입니다. 모든 그룹이 초기에 접혀 있어야합니다. 그렇다면 코드를 수정하여 첫 번째로드에서 모든 코드를 무너지게 만들려면 어떻게해야합니까? 이게 내가 도움이 필요한 곳이야! –

+0

@velavasimmanarumugan : 구현하기가 매우 쉽습니다. 수정 된 데모 https://jsfiddle.net/92da8xhq/1/에서 collapsedGroups : {}을 제거하고 약간의'groupCollapse'와'onClickGroup'을 변경했습니다. – Oleg

+0

무료 jqgrid가 이전 jqGrid 4.7 이전에 사용 가능한 모든 기능을 지원합니까? 설치 prorcesses는 동일합니까? 무료 jqgrid와 Guriddo jqGrid JS의 차이점은 무엇입니까? 글쎄, 요컨대, 내 관심사는, 내가 "자유 jqgrid"로 전환하고자하는 경우 내 전체 구현을 변경해야합니까? 또는이 두 가지가 얼마나 호환 될 수 있습니까? –

관련 문제