提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:秦林|2022-10-09 13:38:53.827|阅读 61 次
概述:这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。
甘特图显示任务的顺序与它们来自数据源的顺序相同。如果您允许用户手动重新排序任务,您还需要将此订单存储在数据库中,并确保您的数据馈送返回正确排序的数据。
客户端配置:
// reordering tasks within the whole gantt gantt.config.order_branch = true; gantt.config.order_branch_free = true; gantt.init("gantt_here"); gantt.load("/api"); var dp = gantt.createDataProcessor({ url: "/api", mode: "REST" });
保存顺序可以通过多种方式实现,我们将展示其中一种。
HTTP方法 | URL | 参数 | 响应 |
PUT | /apiUrl/task/taskId | 目标 = 相邻任务 ID | {“行动”:“更新”} |
参数将 target 包含在当前任务之前或之后的最近任务的 id。它的价值可能来自以下两种格式之一:
应用订单更改通常涉及更新多个任务,这里是一个伪代码示例,说明如何实现它:
const target = request["target"]; const currentTaskId = request["id"]; let nextTask; let targetTaskId; // get id of adjacent task and check whether updated task should go before or after it if(target.startsWith("next:")){ targetTaskId = target.substr("next:".length); nextTask = true; }else{ targetTaskId = target; nextTask = false; } const currentTask = tasks.getById(currentTaskId); const targetTask = tasks.getById(targetTaskId); if(!targetTaskId) return; // updated task will receive the sortorder value of the adjacent task let targetOrder = targetTask.sortorder; // if it should go after the adjacent task, it should receive a bigger sortorder if(nextTask) targetOrder++; // increase sort orders of tasks that should go after the updated task tasks.where(task => task.sortorder >= targetOrder). update(task => task.sortorder++); // and update the task with its new sortorder currentTask.sortorder = targetOrder; tasks.save(currentTask);
请求添加自定义标头
当您需要甘特图向后端发送额外的标头时,您可以使用dataProcessor.setTransactionMode方法指定它们。
例如,假设您需要在请求中添加授权令牌:
gantt.init("gantt_here"); gantt.load("/api"); var dp = gantt.createDataProcessor({ url: "/api", mode:"REST", headers: { "Content-Type": "application/x-www-form-urlencoded", "Authorization": "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b" } });
目前,load不支持header/payload参数,因此如果您需要它们来进行GET请求,您必须手动发送xhr并使用parse将数据加载到甘特图中,例如:
gantt.ajax.get({ url: "/api", headers: { "Authorization": "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b" } }).then(function (xhr) { gantt.parse(xhr.responseText) });
请求添加自定义参数
有几种方法可以向请求发送附加参数。
如您所知,甘特图将数据对象的所有属性发送回后端。因此,您可以直接向数据对象添加一个附加属性,并将其发送到后端:
gantt.attachEvent("onTaskCreated", function(task){ task.userId = currentUser; return true; });
或者,您可以使用参数的有效负载 属性setTransactionMode向数据处理器发送的所有请求添加自定义参数:
gantt.init("gantt_here"); gantt.load("/api"); var dp = gantt.createDataProcessor({ url: "/api", mode:"REST", payload: { token: "9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b" } });
将自定义参数添加到请求的另一种方法是使用DataProcessor的onBeforeUpdate事件:
var dp = gantt.createDataProcessor({ url: "/api", mode:"REST" }); dp.attachEvent("onBeforeUpdate", function(id, state, data){ data.projectId = "1"; return true; });
要动态更改后端URL,请使用dataProcessor.url方法:
dp.url("/url");
dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理控件应用程序的所有需求,是最完善的甘特图图表库。了解更多DhtmlxGantt相关内容和资讯,欢迎在线咨询或者私信我获取正版试用版及报价。
甘特图控件交流群:764148812 欢迎进群交流讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
本文将演示如何使用DevExpress WPF Grid控件实现列和带的固定,欢迎下载最新版组件体验!
在本文中,我们将探讨如何通过使用 JxBrowser 和 Quill.js 将现代富文本编辑器嵌入到 Java 桌面应用程序中,来克服 Swing、JavaFX 和 SWT 中内置编辑器的局限性。
Word 文档中的批注通常用于协作审阅和反馈。这些批注可能包含文本和图片,它们为文档改进提供了重要的参考信息。本文将演示如何使用 Spire.Doc for Java 在 Java 中提取 Word 文档中的批注文本和图片。
本文主要介绍如何使用DevExpress WinForms Data Grid组件实现列重新排序,欢迎下载最新版组件体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢