반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- GIT
- 주식
- 코로나19
- Dunk Low
- 제이쿼리
- react
- Python
- dunklow
- 덩크 로우
- 나이키
- 자바스크립트
- dunk high
- oracle
- 드로우
- 오라클
- 주식공부
- 덩크 하이
- 리액트
- 덩크로우
- Github
- Linux
- 리눅스
- stockx.com
- JavaScript
- 파이썬
- Nike
- 발매예정
- jQuery
- sacai
- draw
Archives
- Today
- Total
Life goes slowly...
ag-Grid-React 사용자 정의 셀 렌더러 본문
728x90
반응형
✅ 사용자 정의 셀 렌더러란?
기본적으로 AgGridReact는 텍스트 기반으로 데이터를 셀에 출력합니다. 하지만 복잡한 UI(버튼, 이미지, 링크, 조건부 스타일 등)를 출력하고 싶은 경우, React 컴포넌트를 셀 렌더러로 지정할 수 있습니다.
이는 일종의 Cell View Layer를 개발자가 직접 구성할 수 있도록 해주는 구조입니다.
💡 동작 방식 요약
- React로 렌더러 컴포넌트를 작성한다.
- AgGridReact의 frameworkComponents에 등록한다.
- 컬럼 정의(columnDefs)의 cellRenderer 속성으로 해당 컴포넌트를 지정한다.
- Ag-Grid가 각 셀에 대해 해당 컴포넌트를 mount한다.
🔧 AgGridReact 에서 prop를 통한 이벤트 처리 예제
import React, { useState } from "react";
import { AgGridReact } from "ag-grid-react";
import ButtonRenderer from "./ButtonRenderer";
import "ag-grid-community/styles/ag-grid.css";
import "ag-grid-community/styles/ag-theme-alpine.css";
const AgGridText = () => {
const [rowData] = useState([
{ make: "Hyundai", model: "Sonata", price: 25000 },
{ make: "Kia", model: "K5", price: 27000 },
]);
const [columnDefs] = useState([
{ field: "make" },
{ field: "model" },
{ field: "price" },
{
headerName: "작업",
field: "action",
cellRenderer: "buttonRenderer", // 렌더러 지정
},
]);
const ButtonRenderer = (props) => {
return (
<button onClick={() => props.context.handleRowClick(props.data)}>
선택
</button>
);
};
return (
<div className="ag-theme-alpine" style={{ height: 400, width: 600 }}>
<AgGridReact
rowData={rowData}
columnDefs={columnDefs}
frameworkComponents={{ buttonRenderer: ButtonRenderer }}
context={{ handleRowClick: (data) => console.log(data) }}
/>
</div>
);
};
728x90
반응형
'프로그래밍 > React.js' 카테고리의 다른 글
🎯 React Saga 완벽 정리: 복잡한 비동기 로직을 간결하게! (0) | 2025.05.29 |
---|---|
ag-Grid-React Excel 다운로드 (0) | 2025.05.21 |
ag-Grid-React Row 편집 (0) | 2025.05.18 |
ag-Grid-React 라이브러리의 option (0) | 2025.05.14 |
[React] react.js의 HTML <a> 태그 관련 에러 (0) | 2022.07.06 |
[React] react.js의 HTML img 태그 관련 에러 (0) | 2022.07.05 |
[React] Invalid DOM property `for`. Did you mean `htmlFor`에러 (0) | 2022.05.12 |
[React] Expected `onClick` listener to be a function, instead got `false` 에러 (0) | 2022.05.09 |
Comments