2017-01-27 44 views

Odpowiedz

0

W thymeleaf, będzie to wyglądać mniej więcej tak:

Kontroler:

// 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()); 

Thymeleaf:

<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

Im szuka javascript sposób rozwiązywania tego. Przepraszam, zapomniałem o tym. –

0

DataTable witryna zawiera przykłady filtrowania zakres: https://datatables.net/examples/plug-ins/range_filtering.html

Jestem zmuszony zgadnąć format dat, których używasz (ten exa MPle korzysta dd-mm-rrrr), coś jak to pracował dla mnie:

HTML:

<body onload="initFilter();"> 
    From <input type="text" id="start" /> to <input type="text" id="end" /> 

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>