DHTMLX 甘特图中的日期范围过滤器

如何解决DHTMLX 甘特图中的日期范围过滤器

我需要在 DHTMLX 甘特图中显示自定义日期范围过滤器。该过滤器的值如下:

Last Year
Current Year
Last 6 Months
Last 2 Quarters
Next Year

用户点击任何选项时,图表将基于此过滤掉。

这是我的 HTML:

<script src="https://docs.dhtmlx.com/gantt/codebase/dhtmlxgantt.js?v=6.0.0"></script>
<link rel="stylesheet" href="https://docs.dhtmlx.com/gantt/codebase/dhtmlxgantt.css?v=6.0.0">

        
        <div style='height:20px; padding:5px;'>
            <div class="filters_wrapper" id="filters_wrapper">
                
                Search Projects:
                <input type="text" name="a12" value="" id="a12" oninput='gantt.$doFilter(this.value)' style="width: 100px;"/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                
                
            </div>
        </div>
        <style>
       
        </style>
        <div id="gantt_here" style="width:100%; height:100%;"></div>
        <style type="text/css" media="screen">
            html,body { margin:0px; padding:0px; height:100%; overflow:hidden; }
        </style>

Javascript:

 var tasks = {data:[
    {id:1,text: "Development",start_date: "01-05-2025",duration: 5,"progress": 0.5},{id:2,text: "Coding",duration: 2,parent: 1,{id:3,text: "Bug fixing",start_date: "12-05-2023","progress": 0.8},{id:4,text: "Feature development",start_date: "05-05-2025","progress": 0.45}
]}; 


gantt.config.columns = [
    {name: "text",label:"Text",tree: true,width: 100},{name: "start_date",label: "Start time",align: "center",width: 160},{name: "end_date",label: "End time",];

gantt.config.open_tree_initially = true;
        gantt.plugins({ 
            tooltip: true 
        }); 
        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)
        };
      
        
        var datetoStr = gantt.date.date_to_str(gantt.config.task_date);
        var markerId = gantt.addMarker({  
            start_date: new Date(),css: "today",text: "Now",title: datetoStr(new Date()) 
        });
        gantt.getMarker(markerId); //->{css:"today",text:"Now",id:...}
        
        gantt.attachEvent("onTaskLoading",function(task){
            task.$open = true;
            return true;
        }); 
        
        
        gantt.init("gantt_here");
        gantt.parse(tasks);
      
        gantt.attachEvent("onBeforeTaskdisplay",function(id,task){
            if(!filterValue) return true;
            
            var normalizedText = task.text.toLowerCase();
            var normalizedValue = filterValue.toLowerCase();
            return normalizedText.indexOf(normalizedValue) > -1;
            if (compare_input(id)) {
        return true;
    }
    return false;
        });

谁能告诉我如何在 DHTMLX 甘特图中获取上述自定义日期范围过滤器

解决方法

要更改显示的日期范围,您需要使用 gantt.config.start_dategantt.config.end_date 参数:

https://docs.dhtmlx.com/gantt/api__gantt_start_date_config.html

这是一个简单的例子:

https://snippet.dhtmlx.com/5/9f6871291

这是带有按钮的片段:

http://snippet.dhtmlx.com/5/ff3649b9d

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?