Kendo Grid фильтрация даты и времени - PullRequest
0 голосов
/ 07 марта 2019

Я использую Kendo Grid. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу отфильтровать дату и время, выбрав какой-либо параметр из фильтра.

Вот мой код:

@(Html.Kendo()
    .Grid<IssueViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(c => c.IssuePostedAt).Format("{0:dd.MM.yyyy hh:mm:ss}").Filterable(filterable => filterable.UI("orderDateFilter")).Title("Posted")
            .ClientTemplate("#:kendo.toString(data.IssuePostedAt, \"dd.MM.yyyy hh:mm:ss\")#");
    })
    .Sortable()
    .Pageable(pageable => pageable
        .Refresh(true)
        .ButtonCount(5))
    .Events(events => events.DataBound("onGridDataBound"))
    .Filterable(filterable => filterable
        .Enabled(true)
        .Extra(false)
        .Operators(operators => operators.ForString(str => str.Clear().Contains("Содержит")))
    )
    .DataSource(dataSource => dataSource
        .WebApi()
        .Model(model => model.Id(i => i.Issue.Id))
        .Sort(sort => sort.Add(i => i.IssuePostedAt).Descending())
        .Read(read => read.Url("/issue/gridData"))
        .PageSize(20)
    )

JavaScript:

function orderDateFilter(element) {
    element.kendoDateTimePicker({
        format: "dd.MM.yyyy hh:mm:ss",
        timeFormat: "hh:mm:ss"
    });
}

Это код в контроллере:

[HttpGet]
[Route("gridData")]
public async Task<ActionResult> GridData([ModelBinder(typeof(DataSourceRequestModelBinder))] DataSourceRequest request)
{
    var filterByUser = HttpContext.GetReferrerParam("name");
    var gridData = await IssuesRepository.Instance.Get(filterByUser); // get all data from DB
    var results = gridData.ToDataSourceResult(request);
    return Json(results);
}

Фильтр DateTime вообще не работает. gridData.ToDataSourceResult(request); всегда возвращает пустой результат.

Я буду благодарен, если кто-нибудь сможет помочь мне в решении моей проблемы. Заранее спасибо.

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