我遇到的问题是没有调用Kendo Grid的READ操作,因此网格不会填充任何数据。我已经关注了这些链接
Kendo UI Grid is not calling READ method
但问题仍然存在。
/// CS文件
public ActionResult GetItemsHome([DataSourceRequest] DataSourceRequest request , int page)
{
List<CustomItem> lst = new List<CustomItem>();
return Json(lst.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
/// cs html file
@(Html.Kendo().Grid<CustomItem>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(o => o.No).Width("15%");
columns.Bound(o => o.ShortDesc).Width("15%");
columns.Bound(o => o.Category).Width("6%");
})
.Sortable()
.Pageable(p=>p.Refresh(true))
.Filterable()
.Scrollable()
.Editable(edit => edit.DisplayDeleteConfirmation("Are You Sure To Delete This ").Mode(GridEditMode.PopUp))
.ColumnMenu(col=>col.Sortable(false))
.Groupable()
.ToolBar(toolbar => toolbar.Create())
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
//.ClientDetailTemplateId("template")
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(6)
.Read(read => read.Action("GetItemsHome", "det"))
.Model(model => {
model.Id(p => p.ID);
})
.Create(update => update.Action("EditingInline_Create", "det"))
// .Read(read => read.Action("EditingInline_Read", "Default1"))
.Update(update => update.Action("EditingInline_Update", "det"))
.Destroy(update => update.Action("EditingInline_Destroy", "det"))
)
)
加载JS的顺序
有什么想法吗? 感谢
答案 0 :(得分:0)
您的操作GetItemsHome([DataSourceRequest] DataSourceRequest request , int page)
需要传递页面(非空值)。您有3个选择:
request
包含您想要的所有内容).Read(read => read.Action("GetItemsHome", "det", new { page = 10}))
int? page
编辑:执行上述任何操作后,从控制器操作返回一些数据(我正在创建一些任意数据,您可以从DB返回它)来填充网格。类似的东西:
public ActionResult GetItemsHome([DataSourceRequest] DataSourceRequest request , int? page)
{
//List<CustomItem> lst = new List<CustomItem>();
// Dummy data
var data = new [] { new CustomItem(){ No = 1, ShortDesc = "xyz", Category = "abc"},
new CustomItem(){ No = 2, ShortDesc = "xyz", Category = "abc"} };
return Json(data.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
如果您的控制器和操作名称在视图中拼写正确,则上面的代码应该有效。
答案 1 :(得分:0)
如果没有调用你的函数,有些可能性:
return View()
并退出,则可能无法调用您的GetItemsHome()函数 - 我曾经遇到过此问题。