如何在dhtmlx-gantt中差异化设置时间轴列单元格宽度
如何在dhtmlx-gantt中差异化设置时间轴列单元格宽度
嘿,我来帮你搞定这个差异化设置时间轴列宽的需求~
你之前尝试的gantt.config.min_column_width确实是全局统一生效的,没法针对不同月份做区分,所以咱们得换个更灵活的方式:用gantt.config.column_width的函数模式来动态计算每一列的宽度。
具体做法很简单,只需要给column_width赋值一个函数,这个函数会接收当前列对应的日期作为参数,咱们在函数里判断这个日期是否属于十一月,再返回对应的宽度值就行:
// 动态设置时间轴列宽 gantt.config.column_width = function(date) { // 注意:JavaScript里月份是从0开始计数的,10就代表十一月 if (date.getMonth() === 10) { return 40; // 十一月的列宽设为40px } return 20; // 其他月份统一用20px }; // 别忘了重新渲染甘特图让设置生效 gantt.render();
如果你的时间轴是按天来显示刻度的,上面的代码会自动把十一月里所有天的列都设为40px,其他月份的天数列保持20px,完全符合你的需求。要是你的刻度是更大的单位(比如直接显示月份列),这个判断逻辑也同样适用,因为每个月份列对应的date参数就是该月的起始日期,判断月份后返回对应宽度就行。
要是你还有其他特殊需求,比如针对某几个特定月份或者特定日期范围调整宽度,只需要修改函数里的判断条件就可以啦~
备注:内容来源于stack exchange,提问作者ANCESTOR LOONG
相关产品推荐
相关产品推荐

