提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2023-09-04 10:29:16.450|阅读 19 次
概述:在本文中我们将逐步介绍如何把DHTMLX Suite小部件嵌入到Scheduler组件的Lightbox,让项目管理及各项任务调度更可控!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在构建JavaScript调度器时,通常需要为最终用户提供一个他们喜欢的方式来计划事件,这是Web开发人员喜欢认可DHTMLX Scheduler的重要原因,它在这方面提供了完全的操作自由,它带有lightbox弹出窗口,允许通过各种控件动态更改事件的细节。
但是如果想用DHTMLX Suite库中的小部件来补充Scheduler的lightbox,该怎么办呢?在本文中,我们将逐步指导您如何将DHTMLX Suite小部件嵌入到Scheduler组件的lightbox中。
DHTMLX Suite库中的任何小部件都可以无缝地集成到Scheduler组件的编辑表单中,对于所有小部件,算法几乎是相同的。因此我们以DHTMLX Calendar为例,说明如何在实践中做到这一点。我们将把这个功能与启用的时间选择器放在调度器的lightbox中,它有助于方便地以12或24小时格式指定事件的日期和持续时间。
下面是预期的结果:
首先,有必要在scheduler.form_blocks中创建一个新的编辑器对象。为此必须使用返回HTML元素的render方法,在此方法中,您只需创建容器,并在其中生成日期选择器。
scheduler.form_blocks["custom_date_editor"]={ render:function(config){ // config- section configuration object return `<div class='custom_date_editor-wrapper'> <div name="start_date"></div> <div name="end_date"></div> </div> `; }, set_value:function(node,value,ev,config){ }, get_value:function(node,ev,config){ }, focus:function(node){ } };
之后必须创建公共变量startDateCalendar和startDateCalendar:
let startDateCalendar; let endDateCalendar;
这些变量用于访问将放置时间选择器的日历对象。
下一步是创建initcalendar()函数,当您需要重新初始化日历时,即每次打开lightbox时调用它,该函数还在创建新日历之前使用析构函数方法删除任何旧日历(如果它们存在)。timePicker属性的值应设置为true,以补充日期选择功能,使其能够选择计划事件的时间。在下面的代码示例中,我们还使用了dhx_widget - borderdered CSS类来帮助指定日历的边框。
function initCalendars(startDateElement, endDateElement){ if(startDateCalendar){ destroyCalendars(); } startDateCalendar = new dhx.Calendar(startDateElement, { timePicker: true, css: "dhx_widget--bordered" }); endDateCalendar = new dhx.Calendar(endDateElement, { timePicker: true, css: "dhx_widget--bordered" }); } function destroyCalendars(){ if(startDateCalendar){ startDateCalendar.destructor(); endDateCalendar.destructor(); startDateCalendar = null; endDateCalendar = null; } }
现在是时候考虑lightbox控件对象中的set_value函数了,每当控件接收到新值时,就调用此方法。当lightbox打开时,当控件通过API接收到一个新值时,就会发生这种情况。
这就是您必须初始化日历并填充其值的地方:
set_value:function(node,value,ev,config){ initCalendars(node.querySelector("[name='start_date']"), node.querySelector("[name='end_date']")); startDateCalendar.setValue(new Date(ev.start_date)); endDateCalendar.setValue(new Date(ev.end_date)); },
为了使控件能够在事件中保存这些值,必须从get_value函数返回这些值。
在我们的例子中,函数看起来像这样:
get_value:function(node,ev,config){ const start_date = startDateCalendar.getValue(true); const end_date = endDateCalendar.getValue(true); ev.start_date = start_date; ev.end_date = end_date; return { start_date, end_date }; },
澄清在这里做的两件事情是很重要的:
当实现映射到事件对象单个属性的简单控件时,不需要修改事件对象,只需要从方法返回值,返回值将自动分配给事件对象的相应属性。
最后需要在日历不再需要时销毁它们,通常使用DHTMLX Scheduler的onAfterLightbox事件来完成:
scheduler.attachEvent("onAfterLightbox", destroyCalendars);
在这个示例中,您可以看到带有嵌入式时间选择器功能的事件日历,并使用它。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
一个类似于Google日历的强大JavaScript日程安排控件。
DHTMLX Suite一个用于构建跨浏览器Web应用和移动应用的强大JavaScript UI库。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢