Bootstrap Table Filterby, фильтр по диапазону дат ничего не показывает - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время используется библиотека таблиц Bootstrap от wenzhixin.Вот этот https://github.com/wenzhixin/bootstrap-table. Я столкнулся с проблемой с опцией filterby.Я создал таблицу с помощью Echoing из PHP-кода, а не с помощью json для импорта данных. Так что на самом деле это все еще таблица на основе HTML.Основная проблема, которую я имею, - это фильтрация строк по диапазону дат.Я также использую сценарии moment.js, чтобы скомпилировать массив дат для использования в фильтре таблицы начальной загрузки.

Вот пример JSfiddle того, чего я пытаюсь достичь.Как вы увидите, когда пытаетесь выбрать дату для фильтрации, хотя moment.js работает, фильтр ничего не возвращает.

https://jsfiddle.net/rsnwvkz3/1/

$(function() 
{
$('#table').bootstrapTable()
}
)

//Moment.JS Return Date Ranges
function getDates(startDate, stopDate) {
var dateArray = [];
var currentDate = moment(startDate);
var stopDate = moment(stopDate);
while (currentDate <= stopDate) {
    dateArray.push( '"'+moment(currentDate).format('YYYY-MM-DD')+'"' )
    currentDate = moment(currentDate).add(1, 'days');
}
return dateArray;
}


 $('#ok').click( function() 
 { 

var $table = $('#table')
var from=$("input[type=date][name=date1]" ).val();
var to=$("input[type=date][name=date2]" ).val();
  alert(getDates(from,to))
$table.bootstrapTable('filterBy',{ ETA:[getDates(from,to)]}) 



})

1 Ответ

0 голосов
/ 04 апреля 2019

В массиве даты необходимо удалить двойные кавычки, а параметр filterBy принимает одномерный массив.

Пример:

$(function() {
    $('#table').bootstrapTable()
})

//Moment.JS Return Date Ranges
function getDates(startDate, stopDate) {
    var dateArray = [];
    var currentDate = moment(startDate);
    var stopDate = moment(stopDate);
    while (currentDate <= stopDate) {
        dateArray.push(moment(currentDate).format('YYYY-MM-DD'))
        currentDate = moment(currentDate).add(1, 'days');
    }
    return dateArray;
}


$('#ok').click(function() {

    var $table = $('#table')
    var from = $("input[type=date][name=date1]").val();
    var to = $("input[type=date][name=date2]").val();
    alert(getDates(from, to))
    $table.bootstrapTable('filterBy', {
        ETA: getDates(from, to)
    })



})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...