Skip to content

정렬 & 필터

라이브 데모

정렬 (Sort)

헤더 셀 클릭으로 정렬 이벤트를 발생시킵니다. 실제 정렬 로직은 부모 컴포넌트에서 처리합니다.

단일 정렬

헤더 클릭 시 오름차순(▲) ↔ 내림차순(▼) 토글. 다시 클릭하면 정렬 해제.

다중 정렬

Shift + 헤더 클릭으로 여러 컬럼을 동시에 정렬합니다.

  • 정렬된 컬럼 헤더에 순서 번호(①②③…)와 방향 화살표 표시
  • 이미 정렬 중인 컬럼을 Shift+클릭하면 방향 토글 → 해제 순으로 변경
ts
import type { SortConfig } from 'wz-grid'

const handleSort = (configs: SortConfig[]) => {
  if (configs.length === 0) return
  rows.value = [...rows.value].sort((a, b) => {
    for (const { key, order } of configs) {
      const modifier = order === 'asc' ? 1 : -1
      if (a[key] !== b[key]) return (a[key] > b[key] ? 1 : -1) * modifier
    }
    return 0
  })
}
vue
<WZGrid ... @sort="handleSort" />

필터 (Filter)

useFilter prop을 true로 설정하면 헤더 아래에 컬럼별 텍스트 입력 필터 행이 나타납니다.

vue
<WZGrid :useFilter="true" ... />
  • 각 컬럼 입력창에 텍스트를 입력하면 부분 일치 필터링 적용
  • 여러 컬럼에 동시에 필터 적용 가능 (AND 조건)
  • 필터 변경 시 1페이지로 자동 이동

Released under the MIT License.