! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

데이터 컬럼 정렬 및 필터링 기능 문의 > Q&A | 토론

본문 바로가기

VueJS 데이터 컬럼 정렬 및 필터링 기능 문의

페이지 정보

작성자 이경환 작성일 2023-11-07 13:41 조회 282회 댓글 4건
제품 버전 : 2020 | 5.20202.699

본문

안녕하세요.

위즈모 그리드 사용중 문의사항이 있습니다.


1. 그리드 내 정렬 기능 사용시 특정 컬럼의 데이터 타입이 배열인 경우 정렬 기능 기본 동작에 대해서 sortComparer, sortConverter 등 직접 함수를 작성하는 방법 외 제공되는 옵션이 있는지 문의드립니다. (원하는 방향은 특정 컬럼의 데이터 타입이 배열인 경우, 배열 내 특정한 1개의 값과 서로 비교하고 싶습니다.)


2. 데이터 타입이 배열인 경우 필터링과 셀 데이터 표시가 모두 콤마 구분자로 구분되어 노출되는데, 이 기본 동작을 확장할 수 있는 방법이 있는지 궁금합니다. 셀 데이터 노출은 Cell Custom Template 으로 해결했는데, 필터에 노출되는 값을 구분자 없이 각 항목이 노출되었으면 합니다.
값이 [A, B, C] 인 경우 A,B,C로 노출되는데 A와 B, C가 각각 노출되었으면 합니다. (ColumnFilter > ValueFilter > uniqueValues 값을 수정해보았으나 올바르지 않은 방법인 것 같아 가이드 받고자 문의드립니다.)


AS-IS

- A,B,C


원하는 방향

- A

- B

- C


3. 그리드 PDF Export시 null이나 undefined 인 값을 '-'로 표기할 수 있는 방안에 대해서 문의드립니다. (columnDataMap 제외)


4. 추가로 위즈모 라이브러리 사용시 개발자 도구 콘솔에 아래와 같은 경고 문구가 뜹니다.


[Deprecation] Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event. This event type is deprecated (https://w3c.github.io/uievents/#legacy-event-types) and work is underway to remove it from this browser. Usage of this event listener will cause performance issues today, and represents a risk of future incompatibility. Consider using MutationObserver instead.


특정 기능이 2024년 7월 이후에 제거된다는 내용 같은데, 혹시 이에 대응되는 라이브러리 버전이 어떻게 되는지, 구버전도 패치를 통해 경고 문구를 없앨 수 있는지 문의드립니다.



---------


https://codepen.io/n2ptune-the-styleful/pen/wvNgjvq 


1, 2번의 경우 텍스트로 설명이 부족한 것 같아 샘플도 같이 첨부 드립니다.

샘플 내 Downloads 컬럼 정렬시 String 정렬이 아니라, 배열 내 특정 인덱스의 값과 비교하고 싶습니다. 직접 함수를 작성하는 방법 외 제공되는 옵션이 있는지 문의드립니다.


감사합니다.

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

MESCIUS루시님의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.


해당 내용은 확인 중에 있으며 업데이트가 되는대로 안내드리도록 하겠습니다. 다만, 4번 문의의 경우 저희쪽에서 재현이 되지 않아 정확한 답변이 어려운 상황입니다. 관련하여 저희 쪽으로 재현 가능한 샘플을 공유해주신다면 재현 및 디버깅 후 답변드리도록 하겠습니다.


감사합니다.

메시어스 드림


이경환님의 댓글의 댓글

이경환 작성일

안녕하세요.

vue 프레임워크를 사용중이고, <wj-flex-grid-column /> 컴포넌트 사용시 경고 문구가 뜨는 것 같습니다. (경고 문구가 발생하는 경로는 @grapecity/wijmo.vue2.base 입니다.

https://codesandbox.io/s/flamboyant-liskov-xrf3gl?file=/src/components/HelloWorld.vue
샘플 첨부드립니다. 브라우저 콘솔 확인시 경고 문구 확인 가능합니다. 테스트한 크롬 버전 (버전 119.0.6045.105(공식 빌드) (x86_64))

MESCIUS루시님의 댓글의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.

말씀하신 메시지 문구가 저희 쪽에서 확인이 되어 본사 개발팀에 리포팅할 예정입니다. 확인 후 회신드릴 수 있도록 하겠습니다.

감사합니다.
메시어스 드림

삭제된 댓글

이경환 작성일

삭제된 댓글 입니다.

3 답변

VueJS Re: 데이터 컬럼 정렬 및 필터링 기능 문의

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS루시 작성일 2023-11-10 10:32 댓글 2건

본문

안녕하세요 메시어스입니다.


문의하신 내용에 대해 답변드립니다.


1. 데이터 유형이 배열인 열에 대한 정렬 설정 문의

=> 문의하신 내용에 대해 본사 개발팀에 확인해보았으나, 안타깝게도 해당 기능을 구현하기 위해서는 사용자 지정 "sortComparer" 함수를 사용해야 합니다. 


Flexgrid는 이미 기본 sortComparer 메서드를 사용하고 있으므로 새 메서드가 사용자 정의 메서드로 전환되며 그리드 성능에 영향이 없으니 참고 부탁드립니다.


원하시는 답변을 드리지못해 죄송합니다.


2. 데이터 유형이 배열인 열에 대한 FlexGridFilter UI 설정 문의

=> FlexGridFilter에 대한 원하는 결과를 얻기 위해서는 열에 있는 모든 고유 값의 목록을 작성하여 값 필터의 uniqueValues 속성으로 설정해야 합니다. 더불어 uniqueValues 속성을 사용하여 설정한 보여지는 값에 따라 해당 열에 있는 데이터를 필터링할 수 있는 사용자 정의 필터 기능을 적용해주셔야 합니다. 


1번과 2번 문의에 대한 샘플은 아래와 같으니 참고 부탁드립니다.




3. PDF 내보내기 시, 빈 값인 "-" 설정 방법 문의

=> 해당 기능의 경우, 아래 코드와 같이 FlexGridPdfConverter의 export 메서드에서 formatItem 콜백함수를 통해 구현하실 수 있습니다.


import * as grid from '@grapecity/wijmo.grid';

(...)

exportPDF() {
gridPdf.FlexGridPdfConverter.export(this.flexGrid, 'FlexGrid.pdf', {
              formatItem: (args) => {
                   // 일반 그리드 셀이고 dataMap이 설정되어 있지 않으면...
                   if (args.panel.cellType === grid.CellType.Cell && !args.panel.columns[args.col].dataMap) {
                      // 값이 비었다면
                      if(args.data === ""){ 
                        args.data = "-"
                      } 
                   } 
              }
        });
}


- formatItem API 문서

- uniqueValues API 문서


관련 API 문서를 공유드리며 4번 문의의 경우, 확인이 끝난 후 답변드리도록 하겠습니다.


감사합니다.

메시어스 드림

댓글목록

이경환님의 댓글

이경환 작성일

안녕하세요.

답변 감사합니다.


2번 필터링과 관련되서, 성능상 문제가 없을지 추가 문의드립니다. 그리드를 사용하는 페이지의 데이터가 많게는 몇 만건이고, 10초 주기로 인터벌이 돌면서 itemsSource를 갱신합니다.


인터벌을 통해 itemsSource가 갱신이 되면 사용자가 적용중이던 정렬, 필터링 기능이 유지될 수 있게끔 제공되는 옵션이 있을까요? 그리고 또, itemsSource가 갱신이 되면 데이터 타입이 배열인 컬럼에 대해서 필터에 단건만 노출시킬 수 있도록 사용자 정의 함수를 사용한다면 성능상 무리가 없을지 문의드립니다.


감사합니다.

MESCIUS루시님의 댓글의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.

해당 내용과 관련하여 추가 확인할 사항이 있어 업데이트가 끝나는대로 안내드리도록 하겠습니다.

감사합니다.
메시어스 드림

VueJS Re: 데이터 컬럼 정렬 및 필터링 기능 문의

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 MESCIUS루시 작성일 2023-11-15 11:25 댓글 0건

본문

안녕하세요 메시어스입니다.


문의하신 내용과 관련하여 안내 드립니다.


1. 'DOMNodeInserted' 경고 메세지 문의

=> 해당 경고 메세지의 경우, 내부적으로 확인되어 2023 v2 버전에서 수정 및 업데이트 반영될 계획입니다. 해당 메세지를 없애기 위해서는 2023 v2 출시 후, 최신 버전으로 업그레이드 구매 및 적용 하시거나 initialize 메서드를 사용하여 열 속성에 대한 열 정의를 별도로 제공하는 workaround를 이용해보시기 바랍니다.


자세한 코드는 아래 샘플에서 확인하실 수 있습니다.



다만 QA 과정에서 계획 일정 및 픽스 버전이 변경될 수 있기 때문에 이 점 업무에 참고 부탁 드립니다. 


2. 그리드 퍼포먼스 문의

=> 먼저 Wijmo 그리드의 경우, 가상화를 통해 일부 데이터만 렌더링 및 추적하며 이는 일반적으로 현재 화면에 보여지는 셀 수가 적을수록 퍼포먼스가 향상됩니다. 이와 관련되어 FlexGrid 속도 개선 방법에 대한 포럼 글을 공유드리오니 참고 부탁드립니다.


- Wijmo FlexGrid 속도 개선 방법


더불어 전체적인 FlexGrid의 퍼포먼스의 경우, 보여지는 셀 수, formatItem 설정 외 여러 요인에 의해 달라질 수 있기 때문에 직접 테스트를 해보는 것이 가장 정확한 방법입니다.


다만 FlexGridFilter의 디스플레이할 수 있는 최대 항목 수를 설정하는 maxValues 속성을 높은 값으로 설정 시 FlexGrid 퍼포먼스에 영향을 주실 있으므로 낮은 값으로 설정해주시기 바랍니다. maxValues의 경우 기본적으로 250개 설정되어 있으나 검색창을 사용하여 디스플레이에 표시되지 않는 항목도 검색 및 선택할 수 있습니다.


추가로 ValueFilterEditor의 updateEditor 기능을 재정의하여 FlexGridFilter 내부에 표시되는 listBox에 대한 가상화 임계값을 설정할 수 있지만 이는 그리드 성능이 약간 향상될 뿐이오니 참고 부탁드립니다.


let updator = ValueFilterEditor.prototype.updateEditor;
ValueFilterEditor.prototype.updateEditor = function () {
  updator.call(this);
  this._lbValues.virtualizationThreshold = 10;
};


자세한 코드는 아래 샘플에서 확인할 수 있습니다.(코드샌드박스 환경 제약으로 인해, 전체 데이터는 1000행으로 설정했습니다.)



3. Sorting 및 Filtering 유지 문의

=> 인터벌을 주고 sorting 및 filtering을 UI를 통해 설정 후 새로운 데이터를 바인딩 되었을 때 기존 sorting 및 filtering이 유지되는 것을 확인할 수 있습니다. 더불어 그리드 상태 유지 데모를 공유드리오니 참고 부탁드립니다.


- 그리드 상태 유지 데모


- maxValues API 문서


관련 API 문서를 공유드리며 다른 궁금한 점이 생기면 문의주시기 바랍니다.


감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

VueJS Re: 데이터 컬럼 정렬 및 필터링 기능 문의

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 MESCIUS루시 작성일 2024-03-13 09:32 댓글 0건

본문

안녕하세요 메시어스입니다.

 

최근 크롬 정책 변경으로 인한 DOMNodeInserted 경고창과 관련하여 추가적으로 FAQ 게시글에 안내 글을 작성하였으니 참고 부탁드립니다.

 

[중요!] Google Chrome 정책 변경으로 인한, Wijmo 업그레이드 및 코드 수정 안내

  

감사합니다.

메시어스 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.