2017-03-21 6 views
1

고정 된 열이 2 개인 jqgrid가 있습니다. 내가 아무것도하지 않으면 얼어 붙은 작품. 고정 된 열이 아닌 다른 열을 숨기거나 표시 한 후에 고정이 작동하지 않습니다.free-jqgrid : 열 고정/열 표시가 고정 열에 영향을 줍니까?

이 나는 ​​일이 무엇인지 모르는 무료있는 jqGrid의 버전 4.14.0

를 사용합니다.

아무도 도와 줄 수 있습니까? 미리 감사드립니다 ...

+0

더 정확하게 문제를 설명해 주시겠습니까? 열을 숨기거나 표시하는 방법은 무엇입니까? 'columnChooser'를 사용하거나'showCol','hideCol','showHideCol'을 직접 호출합니까? "얼어 붙은 것이 작동하지 않는다"는 것은 무엇입니까? 정확하게 "작동하지 않는"것은 무엇입니까? 고정 된 열의 높이/너비가 변경되지 않았습니까? 문제를 재현하는 데 사용할 수있는 데모를 제공하는 것이 좋습니다. – Oleg

+0

@Oleg, 빠른 답장을 보내 주셔서 감사합니다. "hideCol"을 사용합니다. 열을 숨긴 후에 열이 고정되기 전에 고정 된 열과 높이/너비가 변경되지 않았습니다. – Tommy1209

답변

0

낮은 수준의 방법 showCol, hideCol, showHideCol을 직접 사용하는 경우 두 가지 해결 방법 중 어느 것이 최선의 성능을 제공하는지 스스로 선택해야합니다.

개 표시 모든 행 그리드의, 열 머리글 (필터 도구 모음 포함)를 통해 조회 할 필요는 해당 세포에 인라인 CSS 스타일이 변경 될 수 있기 때문에/열 숨기기가 상대적으로 느린 (display 속성이 있어야한다 none 또는 none 값을 제거해야합니다. 그 후 그리드의 높이와 높이도 변경 될 수 있습니다. 그리드에 열이 고정 된 경우 고정 된 다이브에서도 동일한 작업을 수행해야합니다. 또한 고정 다이브의 너비와 높이를 다시 계산해야하며 고정 된 열의 모든 행의 높이도 다시 계산해야합니다.

따라서 한 두 가지 대안이 있습니다

  1. 숨기기/당신의 모든 너비/높이 속성의 재 계산을 강제로 그리드에 jqGridResetFrozenHeights 이벤트를 트리거 한 후 showCol, hideCol, showHideCol과의 호출에 의해 필요한 모든 열을 표시 냉동 다이빙
  2. 는/숨기기를 적용 showCol, hideCol, showHideCol의 호출하여 열 표시 및 setFrozenColumns의 호출로 다시 한번 고정 된 열을 다시, destroyFrozenColumns의 호출에 의해 고정 된 열을 파괴한다.

몇 가지 테스트를 선택하는 것이 좋습니다. 위의 두 가지 방법 중 하나를 선택하면 응용 프로그램에서 최상의 성능을 얻을 수 있습니다.

+0

@Oleg에게 감사드립니다. 해결책 2를 시도했으나 정상적으로 작동합니다. – Tommy1209

+0

@ Tommy1209 : 환영합니다! – Oleg