我有一個Grid with Employes。有一個編輯按鈕和編輯模式設置爲彈出。在我想要編輯的實體的EditorTemplate中,還有另一個具有Incell或Inline編輯模式的Salary歷史的網格。Grid進入Grid Popup Editor - 在子網格中傳遞ID參數
這兩個網格都使用Ajax數據源。問題在於內部網格綁定。將Json結果提供給ajax調用的控制器操作需要我們編輯的workers的ID返回相應的Salary歷史記錄。然而,在知道我們要編輯哪個員工之前,Kendo UI ASP.NET MVC包裝器將呈現某種編輯器的模板,然後在我們請求彈出窗口時編輯它。
如何在Read Ajax調用中提供Employe 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"))
)
)
內蒙古電網(在查看/共享/ 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"))));
太棒了!謝謝! – Pluc
@Pluc你能解決這個問題嗎?我陷入了一個類似的問題,我能夠從主網格中讀取ID到子網格中。但是,無法在我創建的「工具欄」按鈕內讀取相同的值。你能幫我嗎? – Sarah
@Sarah通常你只要使用#= Id#(剃刀)。看看我的問題的日期,那時我剛剛開始使用Kendo。我不確定爲什麼我沒有使用這種語法。您不能將其用於默認設置,過濾器或任何強類型的內容,但對於路由數據我相信您可以...無論哪種方式,這就是您要在工具欄中使用的內容。如果你需要更多的幫助,隨時用樣品開始你自己的問題!這將更容易幫助:) – Pluc