从本篇文章开始,将给大家带来dhtmlxGantt的配置系列教程讲解,请锁定此专栏,以便第一时间获取更新消息。
1、概述
默认情况下,网格包含4列:
参数是一个数组,其中的 columns 每个对象表示一个列。 因此,例如,要在网格中定义 5 列:“任务”、“开始日期”、“结束日期”、“持有人”、“进度”,请指定 columns 参数,如下所示:
gantt.config.columns = [ {name:"text", label:"Task name", tree:true, width:"*" }, {name:"holder", label:"Holder", align:"center" }, {name:"start_date", label:"Start time", align:"center" }, {name:"end_date", label:"End date", align:"center" }, {name:"progress", label:"Progress", align:"center" }, ]; gantt.init("gantt_here");
其中'text'、'holder'、'start_date'、'end_date'、'progress' 是数据属性的名称 。
2、显示任务的结束日期
当任务数据对象包含“%Y-%m-%d”或“%d-%m-%Y”格式的开始和结束日期(即没有小时-分钟部分)时,结果日期为默认格式可能具有不期望的值。
3、隐藏某些任务的“添加”按钮
防止用户将子任务添加到特定任务的一种非常简单的方法是通过 CSS 隐藏“添加”按钮。
gantt.templates.grid_row_class = function( start, end, task ){ if ( task.$level > 1 ){ return "nested_task" } return ""; };
.nested_task .gantt_add{ display: none !important; }
4、宽度
要设置列的宽度,请使用的属性宽度:相关列对象中
gantt.config.columns = [ {name:"text", label:"Task name", width:"*", tree:true }, {name:"start_date", label:"Start time", width:150 }, {name:"duration", label:"Duration", width:120 } ]; gantt.init("gantt_here");
最小/最大列宽
min_width /max_width 属性可用于在调整大小操作的情况下限制列宽:
gantt.config.columns = [ {name:"text", label:"Task name", width:"*", min_width: 150, max_width:300, tree:true}, {name:"start_date", label:"Start time", width:150 }, {name:"duration", label:"Duration", width:120 } ]; gantt.init("gantt_here");
调整大小时的最小网格宽度
网格可以调整到的最小宽度是通过 gantt.config.min_grid_column_width 选项定义的:
gantt.config.min_grid_column_width = 1; // the grid can be resized to 1 px
请注意,调整大小期间网格的最小宽度还取决于“添加”列的最小宽度(默认为 44)。 为了能够将网格调整为小于 44 像素的值, 指定min_width选项: 请在“添加”列的对象中
{name: "add", label: "", min_width: 1 }
5、数据映射和模板
默认情况下,dhtmlxGantt 使用与列名称对应的数据属性填充网格。 例如,如果为列设置 name:"holder" ,dhtmlxGantt 将在传入的 JSON 数据中查找此类数据属性,如果存在此类属性,则将其加载到列中。
为列数据使用模板
如果您想在一个列中显示多个数据属性的混合,您可以为该列使用任何名称,但通过 的模板 属性 列 参数 设置数据模板。 例如,您可以为列指定 name:"staff" 并定义一个模板函数,该函数将返回 的持有者 和 进度数据属性。 要加载到列中。
gantt.config.columns = [ {name:"text", label:"Task name", tree:true, width:"*" }, {name:"start_date", label:"Start time", align: "center" }, {name:"staff", label:"Holder(s)", template:function(obj){ return obj.holder+"("+obj.progress+")"} } ]; gantt.init("gantt_here");
6、文本对齐
要设置列中文本的水平对齐方式,请使用的align属性,代码如下:
gantt.config.columns = [ {name:"text", label:"Task name", tree:true, align:"center"}, {name:"start_date", label:"Start time", align: "center" }, {name:"duration", label:"Duration", align: "center" } ]; gantt.init("gantt_here");
dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足项目管理应用程序的所有需求。了解更多DhtmlxGantt相关内容,请访问慧都网获取。