首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot Dandelion Datatables日期之间的Thymeleaf搜索

Spring Boot Dandelion Datatables日期之间的Thymeleaf搜索
EN

Stack Overflow用户
提问于 2017-01-27 20:09:14
回答 2查看 1.4K关注 0票数 4

我是蒲公英的数据表用弹簧靴和胸腺叶。

这是我想要显示所有日志的表的代码。

代码语言:javascript
复制
<table class="table table-bordered" id="expiredUsersTable" dt:table="true">
    <thead>
    <tr>
        <th dt:sortInitDirection="desc">TIME</th>
        <th dt:filterable="true" dt:filterType="select">Log Level</th>
        <th>Message</th>
    </tr>
    </thead>
    <tbody>
    <tr th:each="log : ${logs}">
        <td th:text="${log?.getFormattedDate()}"></td>
        <td th:text="${log?.level}"></td>
        <td th:text="${log?.message}"></td>
    </tr>
    </tbody>
</table>

我想在这个表的日期范围之间添加筛选器,但使用dandelion数据表无法实现这一点。有什么方法可以做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2017-01-31 00:43:09

在胸腺叶中,这看起来像这样:

控制器:

代码语言:javascript
复制
// Create these dates however you want, these example dates are filtering between 1950 and 1960.
GregorianCalendar gc = new GregorianCalendar();
gc.set(Calendar.YEAR, 1950);
model.put("start", gc.getTime());

gc.set(Calendar.YEAR, 1960);
model.put("end", gc.getTime());

胸腺叶:

代码语言:javascript
复制
<table class="table table-bordered" id="expiredUsersTable" dt:table="true">
    <thead>
        <tr>
            <th dt:sortInitDirection="desc">TIME</th>
            <th dt:filterable="true" dt:filterType="select">Log Level</th>
            <th>Message</th>
        </tr>
    </thead>

    <tbody>
        <tr th:each="log : ${logs}" th:unless="${log.date.before(start) OR log.date.after(end)}">
            <td th:text="${log?.formattedDate}"></td>
            <td th:text="${log?.level}"></td>
            <td th:text="${log?.message}"></td>
        </tr>
    </tbody>
</table>
票数 0
EN

Stack Overflow用户

发布于 2017-02-01 00:24:56

数据表站点具有范围筛选的示例:https://datatables.net/examples/plug-ins/range_filtering.html

我不得不猜测您正在使用的日期的格式(本例使用的是dd-mm-yyyy),下面的内容对我很有效:

Html:

代码语言:javascript
复制
<body onload="initFilter();">
    From <input type="text" id="start" /> to <input type="text" id="end" />

JavaScript:

代码语言:javascript
复制
<script>
    // <![CDATA[
    function parseDate(date) {
        if (date.length < 10)
            return false;

        var parts = date.split("-");
        var d = parseInt(parts[0]);
        var m = parseInt(parts[1]) - 1;
        var y = parseInt(parts[2]);

        return new Date(y, m, d);
    }

    function initFilter() {
        $.fn.dataTable.ext.search.push(
            function(settings, data, dataIndex) {
                var start = parseDate($('#start').val());
                var end = parseDate($('#end').val());
                var data = parseDate(data[0]);

                var valid = true;
                valid = valid && (!start || (start.getTime() =< data.getTime()));
                valid = valid && (!end || (end.getTime() > data.getTime()));
                return valid;
            }
        );

        $('#start, #end').keyup( function() {
            oTable_expiredUsersTable.draw();
        });
    }
    // ]]>
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41893670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档