2021. 11. 9. 19:35ㆍIBSheet7/기능 - 병합(Merge)
각 컬럼의 좌측에 머지된 영역을 바라보며 병합하는 머지 유형(msPrevColumnMerge)사용시 가끔 위/아래로 동일한 값이 들어 있음에도 불구하고 머지되지 않는 경우가 있습니다.
ibsheet는 기본적으로 20개 행 단위로 Table를 생성하여 DIV 넣고 있습니다. 따라서 사용자가 스크롤을 내리면 해당 위치에 보여질 DIV객체를 화면에 로드하게 됩니다. 이러한 방식은 화면에 대량의 element가 로드되는 것을 막아 성능을 향상시켜주시만, 단점도 있습니다.
가장 큰 단점 중 하나가 데이터 영역에 대한 머지를 할때 20개 행
단위로 머지가 분리된다는 것입니다.
[동일한 데이터임에도 불구하고 머지가 풀림]
이러한 단점을 극복하기 위해 나온 기능이 SetConfig()함수의
PrevColumnMergeMode 인데, 이 값을 0으로 설정하면 아래쪽 DIV 안에 데이터를 스켄하여 현재 보여지는
DIV와 동일한 데이터가 있을 경우, 현재 보여지는 DIV 영역으로 끌고 오게 합니다. (해당 기능은 앞 컬럼 기준 머지(msPrevColumnMerge) 에서만 사용가능)
[PrevColumnMergeMode 속성 설정 예]
initSheet.Cfg = { FrozenCol:2 ,
MergeSheet:msPrevColumnMerge, PrevColumnMergeMode:0}; |
그런데 만약 맨 앞에 컬럼이 수백개 행에 걸쳐 동일한 값을 갖는다면 한꺼번에 너무 많은 데이터가 화면으로 로드되면서
성능저하가 일어나게 됩니다.
이러한 경우에는 첫 번째 컬럼을 머지를 안하는게 좋습니다.