Skip to Content
ComponentsCalsToolbarGrid

ToolbarGrid

Collapsible 헤더(제목 + 도구 모음) 와 데이터 그리드(페이지네이션 포함)를 결합한 복합 컴포넌트


기본 사용


검색 폼 포함

searchContent prop으로 헤더와 그리드 사이에 검색 입력 격자를 추가합니다.


ScrollArea 내부 스크롤

ToolbarGrid는 내부 Grid를 통해 Foundation ScrollArea / ScrollBar를 사용합니다. 헤더·검색·페이지네이션은 유지되며 height, fullSize, virtualScroll, onScrollEnd 등 기존 Grid 패스스루 API를 그대로 사용합니다. 별도의 Viewport prop은 필요하지 않습니다.

스크롤바 스타일은 List 예제처럼 ToolbarGrid를 감싼 요소에서 중첩된 [data-token="scroll-area"]를 선택해 지정합니다. 기존 --scroll-area-scrollbar-width-vertical, --scroll-area-scrollbar-height-horizontal, --scroll-area-thumb-background 토큰을 사용합니다.

Props

ToolbarGrid 고유 Props

PropTypeDefault설명
titleReactNode-헤더 제목
actionsReactNode-도구 모음 버튼
visiblebooleantruefalse이면 비렌더링
defaultCollapsedbooleanfalse초기 접힘 상태
collapseDisabledbooleanfalse접기 잠금 (항상 펼침)
toolbarPosition'top' | 'bottom''top'도구 모음 위치
showPageTotalbooleanfalse전체 건수 표시
onPageTotalClick() => Promise<{endPageNumber, recordCount}>-전체 건수 클릭 시 팝오버 콜백
searchContentReactNode-검색 폼 영역 콘텐츠
columnsnumber24검색 폼 격자 컬럼 수
colGapnumber15검색 폼 가로 간격 (px)
rowGapnumber20검색 폼 세로 간격 (px)
readOnlybooleanfalse검색 폼 읽기 전용
showLabelbooleantrue레이블 표시 여부
labelPositionLabelPosition'left'레이블 위치
backgroundColorstring-wrapper + 헤더 + Grid 배경색
colorstring-헤더 글자색
borderWidthstring-헤더 테두리 두께
borderColorstring-헤더 테두리 색상
fullSizebooleanfalse전체 화면 확장
classNamestring-wrapper CSS 클래스
styleCSSProperties-wrapper 인라인 스타일

Grid 패스스루 Props

Grid 컴포넌트의 모든 props(data, getRowId, children, loading, pagination, pageSize, selectable, virtualScroll 등)를 직접 전달합니다. 자세한 내용은 Grid 문서를 참조하세요.

ToolbarGrid.Col

검색 폼 격자 안에 컨트롤을 배치하는 열 컴포넌트입니다.

PropTypeDefault설명
spannumber24차지할 컬럼 수
offsetnumber0시작 전 건너뛸 컬럼
hiddenbooleanfalse숨김 처리

접기 / 펴기

  • 헤더를 클릭하면 콘텐츠(검색 폼 + 그리드)가 접힙니다.
  • defaultCollapsed={true}: 초기 접힌 상태로 시작합니다.
  • collapseDisabled={true}: 항상 펼침 상태로 고정됩니다(토글 불가).

도구 모음 위치

toolbarPosition="bottom"으로 설정하면 actions가 콘텐츠 영역 하단에 배치됩니다.

<ToolbarGrid title="하단 도구모음" toolbarPosition="bottom" actions={<button>조회</button>} ... />

전체 건수 표시

showPageTotal={true}rowCount를 함께 전달하면 도구 모음에 “시작-끝 / 전체건수” 형식으로 표시됩니다.

0 (-19-0) / 350

실전: 검색 + 페이징 조합

실제 업무 화면에서 자주 사용되는 검색 폼 + 서버사이드 페이징 + 정렬 조합 예시입니다.

Tip: searchContent 영역에서 CALS의 Input, Select, DatePicker 등의 폼 컴포넌트를 사용하면 더 일관된 UI를 구성할 수 있습니다.


접근성

  • Collapsible trigger에 aria-expanded 자동 노출
  • collapseDisabledaria-disabled 설정
  • 검색 폼 영역에 role="search" 적용
  • readOnly 시 검색 폼에 aria-readonly 설정
Last updated on