"가용 항목 그리드"와 "선택된 항목 그리드"를 나란히 두고, 그 사이에서 체크한 행을 화살표
버튼으로 옮기고 싶을 때 쓴다(권한 배정, 컬럼 표시 여부 선택 같은 화면에 흔한 UI 패턴).
동작 순서는 이렇다: 사용자가 왼쪽 그리드에서 행을 체크하고 ▶ 버튼을 클릭하면, 내부적으로
grid.moveCheckedTo() 가 호출되어 오른쪽 그리드로 행이 옮겨진다 — 이때 crossGridMapping
(필드 매핑)과 3단계 이벤트가 드래그로 옮길 때와 동일하게 적용되므로, 버튼 이동과 드래그
이동을 섞어 써도 동작이 갈리지 않는다.
/ Places arrow buttons between an "available items" grid and a "selected items" grid so
checked rows can be moved between them without dragging (a common pattern for permission
assignment, column visibility pickers, etc.). Operation order: the user checks rows in the
left grid and clicks ▶, which internally calls grid.moveCheckedTo() to move those rows into
the right grid — crossGridMapping (field mapping) and the 3-stage events apply identically to
drag-based moves, so mixing button moves with drag moves never behaves differently.
두 그리드 사이의 셔틀 UI. / Shuttle UI between two grids.
"가용 항목 그리드"와 "선택된 항목 그리드"를 나란히 두고, 그 사이에서 체크한 행을 화살표 버튼으로 옮기고 싶을 때 쓴다(권한 배정, 컬럼 표시 여부 선택 같은 화면에 흔한 UI 패턴). 동작 순서는 이렇다: 사용자가 왼쪽 그리드에서 행을 체크하고 ▶ 버튼을 클릭하면, 내부적으로
grid.moveCheckedTo()가 호출되어 오른쪽 그리드로 행이 옮겨진다 — 이때 crossGridMapping (필드 매핑)과 3단계 이벤트가 드래그로 옮길 때와 동일하게 적용되므로, 버튼 이동과 드래그 이동을 섞어 써도 동작이 갈리지 않는다. / Places arrow buttons between an "available items" grid and a "selected items" grid so checked rows can be moved between them without dragging (a common pattern for permission assignment, column visibility pickers, etc.). Operation order: the user checks rows in the left grid and clicks ▶, which internally callsgrid.moveCheckedTo()to move those rows into the right grid — crossGridMapping (field mapping) and the 3-stage events apply identically to drag-based moves, so mixing button moves with drag moves never behaves differently.Example