Kendo Grid日期时间过滤

时间:2019-03-07 05:17:02

标签: asp.net asp.net-mvc kendo-grid kendo-datepicker kendo-datetimepicker

我正在使用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);始终返回空结果。

如果有人可以帮助我解决我的问题,我将非常感激。预先感谢。

0 个答案:

没有答案