会有简化的代码,类似于我自己的问题: 我有这个模型类:
public class Parent
{
public Guid Id { get; set; }
public string Something { get; set; }
public Child[] Children { get; set; }
}
public class Child
{
public string Code { get; set; }
public string Title { get; set; }
}
有视图:
@(Html.Kendo().Grid<Stihl.UnfairCompetitionWeb.DataLayer.Models.Parent>(Model.Parents)
.Name("grid")
.Columns(columns => {
columns.Bound(e => e.Something);
foreach (Stihl.UnfairCompetitionWeb.DataLayer.Models.LanguageModel l in Model.Languages)
{
columns.Bound(e => e.Children[Model.Languages.IndexOf(l)].Title).Title(l.Code).HeaderHtmlAttributes(new { data_language = l.Code });
}
columns.Command(command => command.Destroy());
})
.ToolBar(toolbar => {
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable((p => p.PageSizes(new[] { 5, 10, 20, 50 })))
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(true)
.PageSize(10)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(e => e.Id))
.Read(read => read.Action("ProductCategories_Read", "Admin"))
.Create(create => create.Action("ProductCategories_Create", "Admin"))
.Update(update => update.Action("ProductCategories_Update", "Admin"))
.Destroy(destroy => destroy.Action("ProductCategories_Delete", "Admin"))
)
)
因此,在控制器上的Crud方法上,聚合,过滤器,组和排序等DataSourceRequest属性为空。
JFI - 我在其他情况下以相同的方式使用网格,它的工作正确。
在我看来,在这种情况下有什么问题 - 网格列绑定来自数组的项目。不是模型类的一些简单属性。它有更多的问题,我解决了什么。
DataSourceRequest的问题是最后一个问题。没有它,我无法实现分页,排序,过滤和其他功能,这通常是关于视图上的一个KeyWord和控制器上的siple代码。
有什么方法可以在客户端使用它吗?
PS: 控制器方法。但是在控制器上,传入的DataSourceRequest包含描述的空数据。
public ActionResult Parents_Read([DataSourceRequest] DataSourceRequest request)
{
return Json(entities.Parents.ToModel(entities.Languages.ActiveLangauges()).ToDataSourceResult(request));
}
答案 0 :(得分:0)
解决DataSourceRequest: 我遇到了同样的问题,但我将 kendo.web.min.js 更改为 kendo.all.min.js ,问题就解决了。
答案 1 :(得分:0)
我遇到过同样的问题。我通过添加kendo.aspnetmvc.min.js解决了这个问题 有了这个js文件请求就可以命中Httppost方法。没有httpget方法