0

我正在使用剑道网格。我面临的问题是我无法通过从过滤器中选择任何选项来过滤日期时间。

这是我的代码:

@(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);总是返回空结果。

如果有人可以帮助我解决我的问题,我将不胜感激。提前致谢。

4

0 回答 0