콘텐츠로 이동
Data Table실행 예제

컬럼 필터링과 정렬

comins-table@0.2.2React

문자·숫자·날짜·boolean 필터를 제어하고, 정렬 후에도 필터와 원본 데이터를 유지하는 예제.

각 조건 버튼은 필터 모델 전체를 해당 프리셋으로 바꿉니다. 정렬 버튼은 필터를 유지합니다. 헤더의 필터 버튼에서는 조건을 직접 편집할 수 있습니다.

조작 표시되는 행
초기 상태 Alpha, Beta, Gamma, Delta
이름 g로 시작 Gamma — 기본 text 비교는 대소문자를 구분하지 않습니다.
금액 100–200 Alpha(120), Delta(160) — 양 끝 값을 포함합니다.
2월 가입 Beta, Gamma — UTC 날짜 기준입니다.
활성 AND 금액 > 150 Gamma, Delta — 다른 컬럼의 조건을 AND로 결합합니다.
금액 100–200 → 금액 내림차순 Delta, Alpha — 필터 모델과 원본 행 배열은 유지합니다.
초기화 모든 필터와 정렬을 해제합니다.
  1. columns[].filter.kind로 비교할 값의 종류를 지정합니다. 이 예제는 안정적인 column ID와 row ID를 명시합니다.
  2. columnFiltering.model과 openColumnId를 React 상태로 소유합니다.
  3. onChangeModel은 전체 다음 모델을, onChangeOpenColumnId는 다음 열린 컬럼 ID 또는 null을 전달합니다. 두 콜백을 각각 상태 setter에 연결합니다.
  4. 원본 data를 그대로 전달합니다. 패키지가 표시할 행을 선택하고 그 결과에 정렬을 적용합니다.

필터는 controlled 구성입니다. 이 버전의 CominsTable에 sortModel prop을 추가하지 않습니다. 정렬 버튼은 ref.setSortModel()을 호출하고 onChangeSortModel은 변경 관찰용으로 사용합니다. 예제 아래의 정렬 JSON은 알림으로 받은 값입니다.

이름 헤더의 필터 아이콘을 열어 Value에 zz를 입력하면 빈 결과를 확인할 수 있습니다. Escape는 열린 편집기를 닫습니다. 필터를 초기화하면 원본 4행이 다시 나타납니다. 편집기 내부 라벨은 설치된 배포본의 영문 라벨을 사용합니다.

  • between의 number 값은 숫자로, 날짜는 정확한 YYYY-MM-DD 문자열로 전달합니다. datetime 문자열의 현지 날짜를 그대로 비교하는 예제가 아닙니다.
  • 원본 배열은 바뀌지 않습니다. 필터링과 정렬은 표시 순서에 적용합니다.
  • 이 예제는 CSR flat data용입니다. Tree, 원격 Viewport, Infinite Scroll, Lazy Load와 결합하지 않습니다. columnFiltering이 있으면 Row Drag는 사용할 수 없습니다.
  • Row Grouping, Summary Row와의 결합, 모든 operator 조합은 별도 예제 수록 대상입니다.

컬럼 필터링 가이드 · 정렬 ref 메서드 · 선택과 정렬 상태