dataprocessor 메서드 집합
새로운 DataProcessor 인스턴스는 createDataProcessor 메서드를 사용하여 생성할 수 있습니다. 이전 방식으로는 dataProcessor 생성자를 통해 인스턴스를 만들 수도 있습니다.
dataprocessor 객체는 다음의 메서드와 이벤트를 포함합니다:
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
// 이벤트 리스너 제거
dp.detachEvent(handlerId);
const status = dp.getState(id);
dp.ignore(() => {
// 이 안의 변경사항은 저장되지 않습니다
gantt.addTask({
id: 10,
text: "Task #5",
start_date: "03-02-2025",
duration: 5
});
});
서버에 변경사항을 저장하지 않고 데이터를 추가하거나 제거할 때 유용합니다.
dp.ignore() 메서드는 gantt.silent()와 유사하게 동작합니다.dp.setTransactionMode("POST", true);
요청 시 커스텀 HTTP 헤더나 추가 데이터를 보내고 싶다면, 첫 번째 매개변수로 다음 속성을 가진 객체를 전달할 수 있습니다:
dp.setTransactionMode({
mode: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Language": "fr-FR"
},
payload: {
"user_id": "12"
}
}, true);
true
(기본값)로 업데이트 표시, false
로 미표시"updated"
dp.setUpdated(1);
dp.setUpdated(2, true, "deleted");
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
if (action === "error") {
alert(`Server error: ${response.message}`);
}
});
가능한 응답 상태는 다음과 같습니다:
updated
inserted
deleted
invalid
error
dp.attachEvent("onBeforeDataSending", (id, state, data) => {
// 데이터 전송 전 커스텀 로직
return true;
});
이 이벤트는 각 데이터 업데이트 요청마다 발생합니다 (onBeforeUpdate
이후).
핸들러가 false
를 반환하면 데이터는 서버로 전송되지 않습니다.
가능한 응답 상태:
updated
inserted
deleted
invalid
error
dp.attachEvent("onBeforeUpdate", (id, state, data) => {
// 업데이트 전 커스텀 로직
return true;
});
이 이벤트는 각 레코드가 업데이트될 때 발생하며, onBeforeDataSending
이전에 실행됩니다.
false
를 반환하면 데이터 전송이 중단됩니다.
가능한 응답 상태:
updated
inserted
deleted
invalid
error
true
는 마크 추가, false
는 마크 제거dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
// 항목에 마크하기 전 커스텀 로직
return true;
});
이 이벤트는 차단할 수 있습니다. false
를 반환하면 해당 항목에 마크가 표시되지 않습니다.