我看到了一些类似问题的例子,但这并没有帮助我解决案件。 在我的情况下,我就是这样:
我要从服务器将对象集合返回到我的模型,并将该集合绑定到控制器中的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字段(数字)中键入数字
我在做什么或错失了我的情况?