[flutter] 플러터 DataTable 행과 열 추가 및 삭제하는 방법

플러터의 DataTable은 데이터를 테이블 형식으로 표시할 수 있는 유용한 위젯입니다. 테이블에 행이나 열을 동적으로 추가하거나 삭제해야 하는 경우가 있습니다. 다음은 테이블에 행과 열을 추가하고 삭제하는 방법에 대한 예제입니다.

DataTable에 행 추가

새로운 데이터를 테이블에 추가하려면 DataTable의 데이터 원본인 리스트에 새로운 항목을 추가해야 합니다. 이후 데이터를 변경하고 나면 setState 함수를 호출하여 화면을 다시 그려야 합니다.

예를 들어, 다음은 DataTable에 새로운 행을 추가하는 방법입니다.

List<DataRow> _rows = [
  DataRow(cells: [
    DataCell(Text('Apple')),
    DataCell(Text('Fruit')),
  ]),
  DataRow(cells: [
    DataCell(Text('Carrot')),
    DataCell(Text('Vegetable')),
  ]),
];

void _addRow() {
  setState(() {
    _rows.add(
      DataRow(cells: [
        DataCell(Text('Banana')),
        DataCell(Text('Fruit')),
      ]),
    );
  });
}

위의 코드에서 _addRow 함수는 DataTable에 새로운 행을 추가하는데 사용됩니다.

DataTable에 열 추가

DataTable에 새로운 열을 추가하려면 DataColumn 리스트에 새로운 DataColumn을 추가해야 합니다. 그리고 데이터 원본인 리스트에 새로운 데이터를 추가하고, setState 함수를 호출하여 변경을 적용해야 합니다.

예를 들어, 다음은 DataTable에 새로운 열을 추가하는 방법입니다.

List<DataColumn> _columns = [
  DataColumn(label: Text('Name')),
  DataColumn(label: Text('Type')),
];

void _addColumn() {
  setState(() {
    _columns.add(
      DataColumn(label: Text('Color')),
    );
  });
}

위의 코드에서 _addColumn 함수는 DataTable에 새로운 열을 추가하는데 사용됩니다.

DataTable에서 행 및 열 삭제

DataTable에서 행이나 열을 삭제하려면 데이터 원본 리스트에서 해당 항목을 제거하고, 다시 한 번 setState 함수를 호출하여 변경을 적용해야 합니다.

void _deleteRow(int index) {
  setState(() {
    _rows.removeAt(index);
  });
}

void _deleteColumn(int index) {
  setState(() {
    _columns.removeAt(index);
  });
}

위의 코드에서 _deleteRow 함수는 지정된 인덱스의 행을 삭제하고, _deleteColumn 함수는 지정된 인덱스의 열을 삭제합니다.

이러한 방법을 사용하여 플러터의 DataTable에 행과 열을 동적으로 추가하고 삭제할 수 있습니다. 원하는 경우 위에 제공된 예제 코드를 사용하여 쉽게 이를 구현할 수 있습니다.