컬럼 지정하기
그리드 컬럼은 columns 파라미터를 사용하여 설정합니다.

// 기본 컬럼 정의
gantt.config.columns = [
{ name: "text", label: "Task name", width: "*", tree: true },
{ name: "start_date", label: "Start time", align: "center" },
{ name: "duration", label: "Duration", align: "center" },
{ name: "add", label: "", width: 44 }
];
그리드 컬럼을 설정하는 방법을 다루는 동영상 가이드도 제공됩니다.
개요
기본적으로 그리드는 4개의 컬럼을 보여줍니다:
- Task name
- Start date
- Duration
- '+' 컬럼. 이 특수 컬럼(
name="add")은 사용자가 하위 작업을 추가할 수 있도록 '+' 기호를 표시합니다.
참고: 기본 컬럼을 그리드에 표시하려면 columns 파라미터를 반드시 지정할 필요는 없습니다.
columns 파라미터는 각 객체가 하나의 컬럼을 정의하는 배열입니다.
예를 들어, 'Task', 'Start Date', 'End Date', 'Holder', 'Progress'라는 5개의 컬럼을 정의하려면 다음과 같이 설정합니다:
gantt.config.columns = [
{ name: "text", label: "Task name", tree: true, width: "*" },
{ name: "holder", label: "Holder", align: "center" },
{ name: "start_date", label: "Start time", align: "center" },
{ name: "end_date", label: "End date", align: "center" },
{ name: "progress", label: "Progress", align: "center" }
];
gantt.init("gantt_here");
여기서 'text', 'holder', 'start_date', 'end_date', 'progress'는 데이터 속성명과 일치합니다.
작업의 종료일 표시
작업 데이터 객체에 시작일과 종료일이 "%Y-%m-%d" 또는 "%d-%m-%Y" (시, 분 없이) 형식으로 포함된 경우, 기본 포맷으로 표시되는 종료일이 예상과 다를 수 있습니다. 종료일 포맷에 대한 자세한 내용은 작업 종료일 표시 및 종료일 포함 문서를 참고하세요.
특정 작업에서 "Add" 버튼 숨기기
특정 작업에 하위 작업 추가를 막으려면 CSS를 이용해 'Add' 버튼을 숨길 수 있습니다.
- 먼저, grid_row_class 템플릿을 사용하여 각 작업 행에 CSS 클래스를 지정합니다:
gantt.templates.grid_row_class = ( start, end, task ) => {
if ( task.$level > 1 ) {
return "nested_task"
}
return "";
};
- 그런 다음, 해당 행의 'Add' 버튼을 CSS로 숨깁니다:
.nested_task .gantt_add {
display: none !important;
}
컬럼 너비 설정
컬럼의 너비는 해당 컬럼의 설정 객체에서 width 속성으로 지정합니다:
gantt.config.columns = [
{ name: "text", label: "Task name", width: "*", tree: true },
{ name: "start_date", label: "Start time", width: 150 },
{ name: "duration", label: "Duration", width: 120 }
];
gantt.init("gantt_here");
width에 '*'를 지정하면 해당 컬럼이 남은 모든 공간을 차지합니다.
그리드 컬럼의 너비는 컬럼의 width와 전체 grid_width 두 설정에 따라 달라집니다. 전체 컬럼 너비 합이 그리드 너비와 일치하지 않을 경우, Gantt가 이 값들 중 하나를 조정합니다.
- gantt.init()로 gantt를 초기화할 때는 컬럼의 width가 우선 적용됩니다.
Related example: 초기화 시 컬럼 너비 우선
- gantt.render()로 gantt를 렌더링할 때는 grid_width가 우선 적용됩니다.
Related example: 렌더링 시 그리드 너비 우선
- gantt.init()로 초기화할 때 컬럼 너비가 없거나 **'*'**로 설정된 경우 grid_width가 우선 적용됩니다.
Related example: 초기화 시 컬럼 너비가 없거나 '*'일 때 그리드 너비 우선
컬럼 최소/최대 너비
컬럼 리사이징 시 너비 제한을 위해 min_width 및 max_width 속성을 사용할 수 있습니다:
gantt.config.columns = [
{ name: "text", label: "Task name", width: "*", tree: true, min_width: 150,
max_width: 300
},
{ name: "start_date", label: "Start time", width: 150 },
{ name: "duration", label: "Duration", width: 120 }
];
gantt.init("gantt_here");
컬럼의 min_width 속성은 gantt의 min_grid_column_width 설정보다 우선합니다.
리사이징 시 최소 그리드 너비
그리드의 최소 리사이즈 너비는 gantt.config.min_grid_column_width로 설정할 수 있습니다. 이 옵션은 그리드 리사이즈 시 각 컬럼이 가질 수 있는 최소 너비를 정의합니다:
gantt.config.columns = [
{ name: "text", label: "Task name", width: 150, tree: true },
{ name: "start_date", label: "Start time", width: 100 },
{ name: "duration", label: "Duration", width: 50 }
];
gantt.config.min_grid_column_width = 30; // 그리드는 최소 90px까지 리사이즈 가능
gantt.init("gantt_here");
Related example: 최소 그리드 너비
또한, 리사이즈 시 최소 그리드 너비는 'add' 컬럼의 최소 너비(기본값 44)에 따라 달라집니다. 44px보다 작게 리사이즈하려면 'add' 컬럼에 min_width를 다음과 같이 설정하세요:
{ name: "add", label: "", min_width: 1 }
데이터 매핑과 템플릿
기본적으로 dhtmlxGantt는 컬럼 이름과 일치하는 데이터 속성을 사용하여 그리드를 채웁니다. 예를 들어, 컬럼에 **name:"holder"**가 있으면 dhtmlxGantt는 JSON 데이터에서 'holder' 속성을 찾아 해당 컬럼에 표시합니다.