一组 dataprocessor 方法
您可以通过 createDataProcessor 方法创建一个新的 DataProcessor 实例。也可以通过较旧的方式,使用 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(`服务器错误: ${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
将阻止该项被标记。