提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2020-06-02 11:11:59.103|阅读 1176 次
概述:我们将学习在dhtmlxGantt网格中实现过滤和搜索任务的通用方法。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。它允许你创建动态甘特图,并以一个方便的图形化方式可视化项目进度。有了dhtmlxGantt,你可以显示活动之间的依赖关系,显示具有完成百分比阴影的当前任务状态以及组织活动到树结构。
在这里,我们提供了有关JavaScript Gantt配置的新视频教程。我们将学习在dhtmlxGantt网格中实现过滤和搜索任务的通用方法:
让我们看一下基本文本过滤器的示例。用户输入一些内容–我们仅显示与所选内容匹配的任务:
此类过滤器由两部分组成:
我们已经知道如何添加UI控件,并且知道将在用户输入上更新过滤器。
现在,我们如何过滤甘特图中的任务?
dhtmlxGantt中没有过滤任务方法。相反,有一个API事件称为onBeforeTaskDisplay:
gantt.attachEvent("onBeforeTaskDisplay", function(id, task){ if (task.priority == "high"){ return true; } return false; });
完整重绘甘特图数据期间,将为每个任务调用此事件。我们可以将此事件的处理程序添加到我们的代码中,并跳过与过滤器值不匹配的任务的呈现。
首先,我们在网格标题中添加一个文本字段:
var textFilter = "<input data-text-filter type='text' oninput='gantt.$doFilter(this.value)'>" gantt.config.columns = [ {name: "text", label: textFilter, tree: true, width: '*', resize: true}, {name: "start_date", align: "center", resize: true}, {name: "duration", align: "center"} ];
在oninput处理程序内,我们将存储过滤器的当前值,并使用甘特图渲染方法触发甘特图的重绘:
var filterValue = ""; var delay; gantt.$doFilter = function(value){ filterValue = value; clearTimeout(delay); delay = setTimeout(function(){ gantt.render(); gantt.$root.querySelector("[data-text-filter]").focus(); }, 200) }
甘特图渲染方法会导致甘特图完全重绘,在此期间,将为每个任务调用onBeforeTaskDisplay事件。 然后,我们检查任务是否符合过滤条件,并决定是否显示它。
gantt.attachEvent("onBeforeTaskDisplay", function(id, task){ if(!filterValue) return true; var normalizedText = task.text.toLowerCase(); var normalizedValue = filterValue.toLowerCase(); return normalizedText.indexOf(normalizedValue) > -1; });
在此阶段,例如,您可能希望在网格中包含多行标题,以便在过滤器上方显示列名。
坏消息是,Gantt没有内置的多行标题配置。但是,我们可以采用与使用自定义HTML内容首先添加过滤器相同的方式来绕过它。我们可以在列标签内显示多行:
var scaleHeight = gantt.config.scale_height; var textFilter = [ "<div class='gantt-sub-header' style='line-height:"+scaleHeight/2+"px'>", "<div>Name</div>", "<div>Search: <input data-text-filter type='text' oninput='gantt.$doFilter(this.value)'></div>", "</div>" ].join("");
实施列跨度或行跨度并不是那么简单,因此希望您将不需要它。
我们邀请您尝试使用免费评估版自己构建自己的JavaScript Gantt来筛选任务。请按照本文和我们的视频教程中所述的步骤进行操作。
dhtmlxGantt可以集成到APS生产计划排程系统中,实现计划修改、滚动排程、临时插单等高级智能功能,帮助企业实现数字化或智能工厂的转型。
相关产品推荐:
VARCHART XGantt:支持ActiveX、.Net等平台的C#甘特图控件
AnyGantt:构建复杂且内容丰富的甘特图的理想工具
jQuery Gantt Package:基于HTML5 / jQuery的跨平台jQuery Gantt包
phGantt Time Package:对任务和时间的分配管理的甘特图
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢