【发布时间】:2012-11-03 07:23:23
【问题描述】:
我有一个包含员工的网格。有一个编辑按钮,编辑模式设置为弹出。在我要编辑的实体的 EditorTemplate 中,有另一个网格具有 Salary 的历史记录,具有 incell 或 inline 编辑模式。
两个网格都使用 Ajax 数据源。问题在于内部网格绑定。将 Json 结果提供给 ajax 调用的控制器操作需要我们正在编辑的员工的 ID 以返回适当的薪水历史记录。但是,Kendo UI ASP.NET MVC 包装器会在知道我们要编辑哪个员工之前呈现某种编辑器模板,然后在我们请求弹出窗口时对其进行编辑。
如何在 Read Ajax 调用中提供员工 ID?
主网格
@(Html.Kendo().Grid<MyProject.Business.Models.EmployeDTO>().Name("EmployeGrid")
.ToolBar(toolbar => toolbar.Create())
.Columns(cols =>
{
cols.Bound(o => o.someData).Title("Some Data");
cols.Bound(o => o.moreData).Title("More Data");
cols.Command(o =>
{
o.Edit();
o.Destroy();
}).Title(" ");
})
.Editable(editor => editor
.Mode(GridEditMode.PopUp)
.Window(window => window.Draggable().Resizable().HtmlAttributes(new { @style = "width:700px;" })))
.Sortable()
.Filterable()
.Groupable()
.DataSource(datasource => datasource
.Ajax()
.Model(model => model.Id(o => o.id))
.Read(read => read.Action("GetAll", "EmployesAjax"))
.Update(update => update.Action("Update", "EmployesAjax"))
.Create(create => create.Action("Create", "EmployesAjax"))
.Destroy(destroy => destroy.Action("Destroy", "EmployesAjax"))
)
)
内部网格(在 Views/Shared/EditorTemplates/EmployeDTO.cshtml 中)
@Html.Kendo().Grid<MyProject.Business.Models.SalairyDTO>().Name("SalaryGrid")
.Columns(cols =>
{
cols.Bound(o => o.someInfo).Title("Some Info");
})
.DataSource(datasource => datasource
.Ajax()
.Model(model =>
{
model.Id(o => o.id);
model.Field(o => o.employe_id).DefaultValue(Model.id);
})
// NEED THE ID HERE
.Read(read => read.Action("GetByEmployeId", "SalairyAjax", new { id = "" }))
.Update(update => update.Action("Update", "SalairyAjax"))
.Create(create => create.Action("Create", "SalairyAjax"))
.Destroy(destroy => destroy.Action("Destroy", "SalairyAjax"))));
【问题讨论】:
标签: asp.net-mvc razor kendo-ui