Datalist
/scss/components/datalist.scss
기본 사용
<div class="new-list is-border"></div>
<div style="width: 100%; height: 200px; overflow-x: auto">
<div class="new-list2 is-border"></div>
</div>
Gn.create('datalist', {
target: '.new-list',
headers: [
{
label: 'no',
key: 'number',
bodyClass: 'has-text-left',
style: {
width: '50px',
'text-align': 'center'
}
},
{
label: '제목',
key: 'title',
className: 'main-title'
},
{
label: '날짜',
key: 'date'
},
{
label: '설명',
key: 'desc'
},
{
label: '기타',
key: 'etc'
}
],
data: [
{
number: '1',
title: '오늘',
date: '2023-07-28',
desc: 'hellojj'
},
{
number: '2',
title: '내일',
date: '2023-07-29',
desc: 'chaaaaaa'
}
],
onChange: updatedData => {
console.log('updatedData', updatedData)
}
})
Gn.create('datalist', {
target: '.new-list2',
headers: [
{
label: 'row-number',
key: 'number'
},
{
label: '제목',
key: 'title'
},
{
label: '날짜',
key: 'date'
},
{
label: '상세설명',
key: 'desc'
},
{
label: '숨김',
key: 'ishidden',
isHidden: true
}
],
data: [
{ number: 1, title: '첫 번째', date: '2023-07-28', desc: '이것은 첫 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 2, title: '두 번째', date: '2023-07-29', desc: '이것은 두 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 3, title: '세 번째', date: '2023-07-30', desc: '', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 4, title: '', date: '2023-07-31', desc: '이것은 네 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
{ number: 5, title: '다섯 번째', date: '2023-08-01', desc: '이것은 다섯 번째 요소입니다.' },
{ number: 6, title: '여섯 번째', date: '2023-08-02 ~ 2023-11-02', desc: '이것은 여섯 번째 요소입니다.' },
{ number: 7, title: '일곱 번째 일곱 번째 일곱 번째', date: '2023-08-03', desc: '이것은 일곱 번째 요소입니다.' },
{
number: 8,
title: '여덟 번째',
date: '2023-08-08',
desc: '이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.'
}
],
hasUpdate: true,
hasDelete: true,
onUpdate: function (row, index) {
console.log('row', row)
console.log('index', index)
},
onChange: updatedData => {
console.log('updatedData', updatedData)
},
isHiddenEmpty: true
})
| name |
type |
default |
description |
| target |
string |
|
컴포넌트 생성 타겟 |
| headers |
label |
string |
|
화면에 출력될 헤더 텍스트 |
| key |
string |
|
data의 항목에 매치되는 키값 |
| isHidden |
boolean |
|
컬럼 노출여부 (data에는 있지만 화면에 출력되지 않음) |
| className |
string |
|
클래스 명 |
| bodyClass |
string |
|
바디에 별개의 스타일을 적용할 경우 클래스 명을 추가한다 |
| style |
string |
|
inline style |
| template |
function(key, row) |
|
데이터를 표시할 템플릿 |
| onSelect |
function(row) |
|
데이터 셀 클릭 이벤트 |
| onDoubleClick |
function |
|
row 더블 클릭 시 수행 이벤트 |
| data |
array |
[] |
key: value로 이루어진 그리드 데이터 |
| textSets |
noData |
string |
No records available. |
데이터가 없을 경우 출력 메시지 |
| isHiddenEmpty |
boolean |
false |
데이터가 없는 경우 헤더 미출력 여부 |
| hasUpdate |
boolean |
false |
수정버튼 생성 여부 |
| hasDelete |
boolean |
false |
삭제버튼 생성 여부 |
| readonly |
boolean |
false |
읽기전용 여부 - 삭제(hasDelete) 버튼 미생성 |
| disabled |
boolean |
false |
Disable 여부 |
| onUpdate |
function(row, index) |
|
데이터 수정 버튼을 클릭한 경우, 수정할 데이터를 가져오기 위한 이벤트핸들러 |
| onChange |
function(updatedData) |
|
수정, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러 |
메소드
| name |
return |
description |
| reRender({headers: Array, data: Array}) |
void |
변경된 값으로 다시 렌더링 한다. 컬럼 헤더까지 바뀌는 경우 사용한다. |
| resetData(data: Array) |
void |
데이터를 변경한다. |
| addChild(index: number, data: Array) |
void |
index번째 row의 child로 data를 추가한다. |
| addRow(data: Array) |
void |
마지막 데이터 하단에 data를 추가한다. |
| expand(index: number) |
void |
index번째 row의 child를 확장한다. |
| collapse(index: number) |
void |
index번째 row의 child 데이터를 축소한다. |
| getChecked() |
array |
체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다 |
| hideCols(keys: Array) |
void |
파라메터 배열에 전달된 key에 해당하지 않는 컬럼만 보여준다 |
| showCols(keys: Array) |
void |
파라메터 배열에 전달된 key에 해당하는 컬럼만 보여준다 |
| showAll() |
void |
hideCols, showCols 수행 시 숨김처리된 컬럼을 모두 보여준다 |
| disable() |
void |
Disabled 처리한다. |
| enable() |
void |
Enabled 처리한다. |