Programming/React

[ React ] ๊ทธ๋ฆฌ๋“œ ํŠน์ • ์…€ ๋“œ๋กญ๋ฐ•์Šค๋กœ ๋ณ€ํ™˜ + ๋ณด์—ฌ์ง€๋Š” ๊ฑด ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ธฐ (ag-grid cellEditorSelector, valueFormatter)

seulye 2022. 10. 4. 14:14

๊ทธ๋ฆฌ๋“œ ํŠน์ • ์…€์„ ์ด๋ ‡๊ฒŒ ๋“œ๋กญ๋ฐ•์Šค๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•!

 

 

https://www.ag-grid.com/react-data-grid/cell-editors/

 

React Data Grid: Cell Editors

A Cell Editor Component is the UI that appears, normally inside the Cell, that takes care of the Edit operation. Download v28 of the best React Data Grid in the world now.

www.ag-grid.com

 

ag grid์—์„œ ์„ค๋ช…ํ•ด์ฃผ๋Š” ๊ฑฐ ๋”ฐ๋ผํ•˜๋ฉด ์ž˜ ๋œ๋‹ค

 

์„ค์ • (setting) ๊ฐ’ (value)
์œ ํ˜• Finte
const cellEditorSelector = (params: { data: { setting: string } }) => {
        if (params.data.setting === 'type') {
            return {
                component: 'agSelectCellEditor',
                params: { values: ['Finite', 'Infinite'] },
                popup: true
            };
        return undefined;
    };

์„ค์ •(์—ด)์— ์œ ํ˜•(type)์ด๋ผ๊ณ  ๋˜์–ด์žˆ๋Š” ํ–‰ ๋ถ€๋ถ„์˜ ๊ฐ’์— ๋“œ๋กญ๋ฐ•์Šค๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ, ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๋œ๋‹ค. 

์ด๋•Œ ๊ฐ’์ด Finite, Infinite๋กœ ๋“ค์–ด๊ฐ€์•ผํ•˜๋Š”๋ฐ ๋ณด์—ฌ์ง€๋Š” ๊ฑด ์œ ํ•œ, ๋ฌดํ•œ์œผ๋กœ ๋ณด์—ฌ์ง€๊ณ  ์‹ถ์œผ๋ฉด valueFormatter์„ ์“ฐ๋ฉด ๋œ๋‹ค. 

 

์ฒ˜์Œ์— cellEditorSelector key, value ์ด๋ ‡๊ฒŒ ๊ฒ€์ƒ‰๋„ ํ•ด๋ดค๋Š”๋ฐ ์•ˆ ๋‚˜์˜ด..

values ๋’ค์— keys : ['๋ฌดํ•œ','์œ ํ•œ'] ๋„ ์จ๋ดค์ง€๋งŒ ๋จน์ง€ ์•Š์•˜์Œ.

 

์†๋Š” ์…ˆ ์น˜๊ณ  ๊ทธ๋ƒฅ valueFormatter ์จ๋ดค๋Š”๋ฐ ๋„ˆ๋ฌด ์ž˜ ๋œ๋‹ค.. 

const arrTypeList = [
        { eng: 'Finite', kor: '์œ ํ•œ' },
        { eng: 'Infinite', kor: '๋ฌดํ•œ' }
    ];
    
const korFormatter = (params: ValueFormatterParams) => {
        const name = arrTypeList?.find((element) => element.eng === params.value);
        return name?.kor;
    };
    
const columnDefs = [
        { headerName: '์„ค์ •', field: 'setting', cellStyle: { textAlign: 'left' } },
        {
            headerName: '๊ฐ’',
            field: 'value',
            cellStyle: { textAlign: 'left' },
            editable: true,
            cellEditorSelector,
            valueFormatter: korFormatter
        },

 

๋~~

 

 

โ€ป ๋ฌธ์ œ์ 

์—ฌ๋Ÿฌ ์…€ ๋“œ๋กญ๋ฐ•์Šค ์„ค์ •์‹œ.. Formatter ์•ˆ์—์„œ๋„ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ค˜์•ผ ํ•˜๋Š”๋ฐ..

if๋ฌธ ์“ฐ๋Š” ์ˆœ๊ฐ„ ๋“œ๋กญ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด Formatter๊ฐ€ ๋‹ค ํ’€๋ ค๋ฒ„๋ฆฐ๋‹ค.. 

์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค :(