翻譯|使用教程|編輯:秦林|2022-10-09 11:32:59.797|閱讀 239 次
概述:這篇文章給大家講解如何利用dhtmlxGantt在服務器端集成數據。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
這篇文章給大家講解如何利用dhtmlxGantt在服務器端集成數據。
客戶端
1)調用load方法,其中作為參數指定以JSON格式返回甘特圖數據的URL。
2)使用以下兩種方式之一創建DataProcessor實例:
gantt.init("gantt_here");
gantt.load("apiUrl");
// keep the order of the lines below
var dp = new gantt.dataProcessor("apiUrl");
dp.init(gantt);
dp.setTransactionMode("REST");
調用createDataProcessor方法并傳遞一個帶有配置選項的對象作為其參數:
var dp = gantt.createDataProcessor({
url: "apiUrl",
mode: "REST"
});
創建數據處理器
1.使用預定義的請求模式之一,如:
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST"
});
位置:
2.提供自定義路由器對象:
var dp = gantt.createDataProcessor(router);
// entity - "task"|"link"
// action - "create"|"update"|"delete"
// data - an object with task or link data
// id – the id of a processed object (task or link)
var dp = gantt.createDataProcessor(function(entity, action, data, id) {
switch(action) {
case "create":
return gantt.ajax.post(
server + "/" + entity,
data
);
break;
case "update":
return gantt.ajax.put(
server + "/" + entity + "/" + id,
data
);
break;
case "delete":
return gantt.ajax.del(
server + "/" + entity + "/" + id
);
break;
}
});
或是以下結構的對象:
var dp = gantt.createDataProcessor({
task: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
},
link: {
create: function(data) {},
update: function(data, id) {},
delete: function(id) {}
}
});
對象的所有函數都路由器應該返回一個Promise或一個數據響應對象。 這是 dataProcessor應用數據庫id并掛鉤onAfterUpdate事件所必需的。
outer = function(entity, action, data, id) {
return new gantt.Promise(function(resolve, reject) {
// … some logic
return resolve({tid: databaseId});
});
}
因此,您可以使用DataProcessor將數據保存在localStorage或任何其他未鏈接到某個URL的存儲中,或者如果有兩個不同的服務器(URL)負責創建和刪除對象。
請求和響應詳細信息
URL由以下規則構成:
其中“api”是您在dataProcessor配置中指定的URL。
可能的請求和響應的列表是:
| ACTION | HTTP | URL | RESPONSE |
| 加載數據 | GET | /apiUrl | JSON格式 |
| 添加新任務 | POST | /apiUrl/任務 | {"action":"inserted","tid":"taskId"} |
| 更新任務 | PUT | /apiUrl/task/taskId | {“行動”:“更新”} |
| 刪除任務 | DELETE | /apiUrl/task/taskId | {“行動”:“刪除”} |
| 添加新鏈接 | POST | /apiUrl/鏈接 | {"action":"inserted","tid":"linkId"} |
| 更新鏈接 | PUT | /apiUrl/link/linkId | {“行動”:“更新”} |
| 刪除鏈接 | DELETE | /apiUrl/link/linkId | {“行動”:“刪除”} |
請求參數
創建/更新/刪除請求將包含客戶端任務或鏈接對象的所有公共屬性:
任務:
關聯:
筆記:
REST-JSON 模式
除了“POST”、“GET”、“REST”和“JSON”事務模式,甘特數據處理器也可以用于“REST-JSON”模式。
gantt.load("apiUrl");
var dp = gantt.createDataProcessor({
url: "/apiUrl",
mode: "REST-JSON"
});
在REST模式中,數據以以下形式發送到服務器:
Content-Type: application/x-www-form-urlencoded
而在REST-JSON模式下,數據以JSON格式發送:
Content-type: application/json
因此參數作為JSON對象發送,請求有效載荷
{
"start_date": "20-09-2018 00:00",
"text": "New task",
"duration":1,
"end_date": "21-09-2018 00:00",
"parent": 0,
"usage":[{
{"id":"1", "value":"30"},
{"id":"2", "value":"20"}
}]
}
{
"source": 1,
"target": 2,
"type": "0"
}
這種格式使得在任何服務器端平臺上處理復雜記錄變得更加方便。
dhtmlxGantt是用于跨瀏覽器和跨平臺應用程序的功能齊全的Gantt圖表,可滿足項目管理控件應用程序的所有需求,是最完善的甘特圖圖表庫。了解更多DhtmlxGantt相關內容和資訊,歡迎在線咨詢或者私信我獲取正版試用版及報價。
甘特圖控件交流群:764148812 歡迎進群交流討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn