我在MVC应用程序的Index视图中有两个部分,我想向这些部分呈现两个PartialView。将kendogrid渲染到一个索引没有问题。但是,为了在KendoGrid上呈现数据,我可以使用在控制器中返回Json的两个方法,如下所示。你能举个例子来说明如何实现这个目标吗?
控制器:
public ActionResult Index()
{
return View();
}
public ActionResult Issues_Read([DataSourceRequest]DataSourceRequest request)
{
IQueryable<Issue> issues = db.Issues;
DataSourceResult result = issues.ToDataSourceResult(request, c => new IssueViewModel
{
ID = c.ID,
ProjectID = c.ProjectID
});
return Json(result);
}
查看:
@(Html.Kendo().Grid<IssueViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.ProjectID);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(180);
})
.ColumnMenu()
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Pageable()
.Navigatable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(p => p.ID))
.Read(read => read.Action("Issues_Read", "Issue"))
.Create(create => create.Action("Issues_Create", "Issue" ))
.Update(update => update.Action("Issues_Update", "Issue"))
.Destroy(destroy => destroy.Action("Issues_Destroy", "Issue"))
)
)
提前谢谢。
答案 0 :(得分:2)
为了多次使用相同的局部视图,网格ID应该是唯一的,因此在局部视图数据中传递ID是一种可能的解决方案。在你的情况下 部分视图第一次调用:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid1" }})
部分查看第二个电话:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid2" }})
部分视图内容:
@(Html.Kendo().Grid<IssueViewModel>()
.Name(@ViewData["id"].ToString())
...