没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2020-06-02 11:11:59.103|阅读 1290 次
概述:我们将学习在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@ke049m.cn
文章转载自:



大型SaaS系统的自动化测试常常受制于界面变化快、结构复杂、加载机制多变等因素。从元素识别到脚本管理,SmartBear TestComplete帮助Salesforce建了可靠的自动化测试体系。
BarTender 标签管理系统,正是帮助企业轻松实现 GS1 标准化标签设计、编码生成与信息联动的强大工具。
Parasoft C/C++test 是一款功能强大的 C/C++ 软件测试工具,集成了静态代码分析、单元测试、集成测试和覆盖率分析等功能,单元测试作为其关键功能之一,为了适配多样化的目标部署环境,C/C++test 设计了灵活的测试结果收集机制。通过Socket通讯方式来收集单元测试结果,从而扩展其测试覆盖范围与应用场景。
Parasoft C/C++test作为一款功能全面的自动化代码质量保障工具,为C/C++开发者提供了静态分析、单元测试和运行时错误检测等核心功能。通过将其与轻量级且广受欢迎的VScode编辑器集成,开发团队可以在熟悉的编码环境中实时获得代码质量反馈,有效提升开发效率与代码可靠性。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营 
