Jquery Spring Boot Dandelion数据表在日期之间搜索
我是蒲公英数据表与春季开机和百里香 这是我要在其中显示所有日志的表的代码Jquery Spring Boot Dandelion数据表在日期之间搜索,jquery,spring-boot,datatable,thymeleaf,dandelion,Jquery,Spring Boot,Datatable,Thymeleaf,Dandelion,我是蒲公英数据表与春季开机和百里香 这是我要在其中显示所有日志的表的代码 <table class="table table-bordered" id="expiredUsersTable" dt:table="true"> <thead> <tr> <th dt:sortInitDirection="desc">TIME</th> <th dt:filterable="true"
<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 datatables实现这一点。有什么方法可以做到这一点?在thymeleaf中,这看起来像这样: 控制器:
// 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());
百里香:
<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>
时间
日志级别
消息
datatable站点有范围筛选的示例:
我不得不猜测您使用的日期格式(本例使用dd-mm-yyyy),类似这样的方式对我很有用:
Html:
从到
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>
//data.getTime());
返回有效;
}
);
$('#开始,#结束').keyup(函数(){
oTable_expiredUsersTable.draw();
});
}
// ]]>
我正在寻找解决这个问题的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>