在 PartialView 中使用 Kendo 网格
Using Kendo Grid in PartialView
我的 MVC 应用程序的索引视图中有两个 <section>
,我想在这些部分中呈现两个局部视图。将 Kendo 网格渲染到一个索引没有问题。但是,为了在 Kendo 网格上呈现数据,我可以使用控制器中返回 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"))
)
)
为了多次使用同一个局部视图,网格 ID 应该是唯一的,因此在局部视图数据中传递 ID 是一种可能的解决方案。在你的情况下
局部视图首次调用:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid1" }})
局部视图第二次调用:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid2" }})
部分查看内容:
@(Html.Kendo().Grid<IssueViewModel>()
.Name(@ViewData["id"].ToString())
...
我的 MVC 应用程序的索引视图中有两个 <section>
,我想在这些部分中呈现两个局部视图。将 Kendo 网格渲染到一个索引没有问题。但是,为了在 Kendo 网格上呈现数据,我可以使用控制器中返回 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"))
)
)
为了多次使用同一个局部视图,网格 ID 应该是唯一的,因此在局部视图数据中传递 ID 是一种可能的解决方案。在你的情况下 局部视图首次调用:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid1" }})
局部视图第二次调用:
@Html.Partial("grid", new ViewDataDictionary { { "id", "grid2" }})
部分查看内容:
@(Html.Kendo().Grid<IssueViewModel>()
.Name(@ViewData["id"].ToString())
...