提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:胡涛|2022-12-09 14:00:26.007|阅读 155 次
概述:本文给大家讲解DHTMLX Gantt的任务内容如何显示,欢迎大家下载最新版试用体验。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术(PHP,ASP.NET,Java等)简单集成,满足多种定制开发需求。本文给大家讲解DHTMLX Gantt的任务内容如何显示,欢迎大家下载最新版试用体验。
拖动允许用户快速更改任务的开始(结束)日期及其持续时间。
默认情况下,拖放是启用的,用户可以在时间线中沿着它的行拖动任务。
要自定义拖放行为,请使用以下事件:
gantt.attachEvent("onBeforeTaskDrag", function(id, mode, e){ if(gantt.getGlobalTaskIndex(id)%2==0){ return false; //denies dragging if the global task index is odd } return true; //allows dragging if the global task index is even });
拒绝将任务拖出特定日期,请使用事件。
onTaskDrag 事件:
很快,一切都按以下顺序发生:
假设您要禁止用户将任务拖出“2020 年 3 月 31 日 - 2020 年 4 月 11 日”的时间间隔。
然后,您可以使用以下代码:
拒绝将任务拖出间隔 - [31.03.2020, 11.04.2020]
var leftLimit = new Date(2020, 2 ,31), rightLimit = new Date(2020, 3 ,12); gantt.attachEvent("onTaskDrag", function(id, mode, task, original){ var modes = gantt.config.drag_mode; if(mode == modes.move || mode == modes.resize){ var diff = original.duration*(1000*60*60*24); if(+task.end_date > +rightLimit){ task.end_date = new Date(rightLimit); if(mode == modes.move) task.start_date = new Date(task.end_date - diff); } if(+task.start_date < +leftLimit){ task.start_date = new Date(leftLimit); if(mode == modes.move) task.end_date = new Date(+task.start_date + diff); } } });
要在用户拖动其父项的任务时允许拖动子项,请使用事件(请参阅事件的更多信息):
gantt.attachEvent("onTaskDrag", function(id, mode, task, original){ var modes = gantt.config.drag_mode; if(mode == modes.move){ var diff = task.start_date - original.start_date; gantt.eachTask(function(child){ child.start_date = new Date(+child.start_date + diff); child.end_date = new Date(+child.end_date + diff); gantt.refreshTask(child.id, true); },id ); } }); //rounds positions of the child items to scale gantt.attachEvent("onAfterTaskDrag", function(id, mode, e){ var modes = gantt.config.drag_mode; if(mode == modes.move ){ var state = gantt.getState(); gantt.eachTask(function(child){ child.start_date = gantt.roundDate({ date:child.start_date, unit:state.scale_unit, step:state.scale_step }); child.end_date = gantt.calculateEndDate(child.start_date, child.duration, gantt.config.duration_unit); gantt.updateTask(child.id); },id ); } });
默认情况下,项目类型的任务不可拖动。您可以使用配置启用项目拖放:
gantt.config.drag_project = true;
有几种方法可以实现随其相关任务一起移动的任务。”中阅读所有这些内容。
可以通过min_duration设置指定最短任务持续时间。
该选项定义了在调整大小时可以设置的任务的最小大小,可用于防止用户设置零持续时间。
该值以毫秒为单位设置:
// 1 day gantt.config.min_duration = 24*60*60*1000; //OR // 1 hour gantt.config.min_duration = 60*60*1000;
如果您在甘特图中有一个大型数据集,您通常需要将任务拖到一个新的较远位置,或者在相距很远的任务之间设置链接。
在这种情况下,自动滚动功能会有很大帮助。它默认启用,但您可以通过自动滚动配置选项管理此行为。
gantt.config.autoscroll = false; gantt.init("gantt_here"); 此外,您可以借助相应的属性 - autoscroll_speed以毫秒为单位调整自动滚动的速度: gantt.config.autoscroll = true; gantt.config.autoscroll_speed = 50; gantt.init("gantt_here");
如果你想阻止某些任务被调整大小,你可以做两件事:
通过 CSS 从 UI 中删除任务的调整大小句柄。为此,您需要使用task_class模板向所需项目添加一个额外的 CSS 类,以便您可以通过选择器找到它们:
gantt.templates.task_class = function(start, end, task){ if(task.no_resize) { // no_resize is a custom property used for the demonstration return "no_resize"; } return "";然后,您可以使用以下 CSS 隐藏调整大小的手柄:
.no_resize .gantt_task_drag{ display: none !important; } 使用onBeforeTaskDrag事件防止代码拖放。从处理程序返回false将阻止调整大小: gantt.attachEvent("onBeforeTaskDrag", function(id, mode, e){ if(mode === "resize" && gantt.getTask(id).no_resize){ return false; } return true; });
拖放的“调整大小”模式意味着用户可以从开始日期或结束日期调整任务的大小。
如果您需要通过调整大小找出用户正在修改的日期,您可以使用gantt.getState().drag_from_start标志:
gantt.attachEvent("onBeforeTaskDrag", function(id, mode, e){ if(mode === "resize"){ if(gantt.getState().drag_from_start === true) { // changing the start date of a task } else { // changing the end date of a task } } return true; });
您可以使用以下选择器定位调整大小手柄:
.gantt_task_drag[data-bind-property="start_date"] .gantt_task_drag[数据绑定属性=“结束日期”]以下 CSS 可用于禁用调整任务开始日期的大小:
.gantt_task_drag[data-bind-property="start_date"]{ display: none !important; }同样,防止调整结束日期的大小如下所示:
.gantt_task_drag[data-bind-property="end_date"]{ display: none !important; }另一种方法是使用onBeforeTaskDrag事件。从处理程序返回false将阻止调整大小:
gantt.attachEvent("onBeforeTaskDrag", function(id, mode, e){ if(mode === "resize"){ if(gantt.getState().drag_from_start === true) { return false; } else { // changing the end date of a task } } return true; });
DHTMLX Gantt享有超十年声誉,支持跨浏览器和跨平台,性价比高,可满足项目管理控件应用的所有需求,是最完善的甘特图图表库。
慧都2022年终狂欢火热进行中,全场产品超低价,DHTMLX全系产品享8.8折!了解更多活动详情,欢迎访问慧都网咨询。
甘特图控件交流群:764148812 欢迎进群交流讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。
DHTMLX Scheduler一个类似于Google日历的强大JavaScript日程安排控件。
DHTMLX Gantt针对您的解决方案的交互式JavaScript / HTML5甘特图
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢