GNUI Start your next web project with GNUI.
Gn.util

Datalist

/scss/components/datalist.scss
v.0.1.0 javascript

기본 사용

  • 데이터 테이블
<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 처리한다.