MVC:映射到集合时,无法在Kendo.Grid()中输入数字,也不能过滤Kendo.Grid

时间:2018-07-31 14:36:37

标签: model-view-controller kendo-grid filtering

我看到了一些类似问题的例子,但这并没有帮助我解决案件。 在我的情况下,我就是这样:

我要从服务器将对象集合返回到我的模型,并将该集合绑定到控制器中的Kendo.Grid()

这是逻辑:

ReportModel返回集合的方法:

public List<ReportEntity> GetInfo(DateTime fileDate)
{
    var client = new IServiceClient();   
    var report = client.GetDetailedReport(fileDate);
    reportData = new List<ReportEntity>();  
    reportData = report.Report09DetailsEntities.ToList();

    return reportData;
}

绑定到网格的控制器中的方法:

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult GetSuspendedDetailsReport([DataSourceRequest] DataSourceRequest request, Models.ReportModel suspendedModel)
{
    var requestDate = Session["FileDate"] == null ? DateTime.Now : Convert.ToDateTime(Session["FileDate"].ToString());
    ReportModel.reportData = ReportModel.GetInfo(requestDate);

    return Json(ReportModel.reportData.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);

}

这是网格:

@(Html.Kendo().Grid(Model.reportData)
    .Name("DetailsGrid")
    .Columns(columns =>
    {
        columns.Bound(c => c.Col1).Title("Col1");
        columns.Bound(c => c.Col2).Title("Col2");
        columns.Bound(c => c.Col3).Title("Col3").ClientTemplate("#= kendo.toString(Col3,'c')#").Width("120px");
        columns.Bound(c => c.Col4).Title("Col4");
        columns.Bound(c => c.Col5).Title("Col5");
        columns.Bound(c => c.Col6).Title("Col6");
    })
        .Scrollable(s => s.Height(550).Virtual(true))
        .Reorderable(reorderable => reorderable.Columns(true))
        .Resizable(r => r.Columns(true))
        .Sortable()
        .ColumnMenu()
        .Pageable(p => p
            .Refresh(true)
            .PageSizes(true)
        )
        .Filterable(f => f.Mode(GridFilterMode.Menu)
            .Extra(false)
            .Operators(o => o
                .ForString(str => str.Clear()
                    .Contains("Contains")
                    .IsEqualTo("EqualTo")
                    .IsNotEqualTo("NotEqualTo")
                    .IsEmpty("Empty")
                )
            )
            .Operators(o => o
                .ForNumber(num => num.Clear()
                   .IsEqualTo("EqualTo")
                   .IsGreaterThan("GreaterThan")
                   .IsLessThan("LessThan")
                 )
            )
        )
        .DataSource(ds => ds
            .Ajax()
            .PageSize(20)
            .Events(e => e.Error("CheckError"))
            .Read(read => read.Action("GetInfo", "MyController", Model))
        ))

过滤网格时,它不会过滤文本字段,并且不允许我在Col3字段(数字)中键入数字

我在做什么或错失了我的情况?

0 个答案:

没有答案