0
我有一個Telerik網格自定義命令按鈕,它應該複製一行。命令按鈕調用JsonResult控制器方法。它複製這條線並返回模型,但網格不會改變 - 因爲它不是重新綁定,我想。Telerik MVC網格自定義命令不重新綁定JSON
我認爲這會發生自動。
Html.Telerik().Grid<MerchantPageModel>()
.Name("PageChooserGrid")
.DataKeys(keys => keys
.Add(c => c.PageID)
.RouteKey("PageID"))
.Columns(cols =>
{
cols.Bound(c => c.Name).Width(300).ClientTemplate("<input type='text' name='name' value='<#= Name #>' readonly='true' />");
cols.Bound(c => c.Template).Width(400).ClientTemplate("<input type='text' name='template' value='<#= Template #>' readonly='true' />");
cols.Bound(c => c.Author).Width(100).ClientTemplate("<input type='text' name='author' value='<#= Author #>' readonly='true' />");
cols.Bound(c => c.ModifiedDate).Format("{0:MM/dd/yyyy}").Width(120).ClientTemplate("<input type='text' name='modifieddate' value='<#= ModifiedDate #>' readonly='true' />");
cols.Bound(c => c.IncludeInNav).ClientTemplate("<input type='checkbox' name='IncludeInNav' value='<#= IncludeInNav #>' <#= populateCheckboxes(IncludeInNav) #>' />")
.Title("Include In Nav")
.Width(100);
cols.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Text);
commands.Custom("Copy").Text("Copy").DataRouteValues(route => route.Add(o => o.PageID).RouteKey("PageID")).Ajax(true)
.Action("_AjaxCopyPage", "SetupWizard");
commands.Delete().ButtonType(GridButtonType.Text);
}).Title("Action List");
})
.DataBinding(data => data.Ajax()
.Select("_AjaxBinding", "SetupWizard")
.Update("_AjaxEditing", "SetupWizard")
.Delete("_AjaxDelete", "SetupWizard"))
.Pageable()
.Sortable()
.ClientEvents(events =>
{ events.OnComplete("Grid_onComplete");
events.OnCommand("Grid_onCommand");
events.OnDataBound("Grid_OnDataBound");
events.OnDataBinding("Grid_OnDataBinding");
})
.EnableCustomBinding(true)
.Render();
並回到:
return Json(pageModel.Pages, JsonRequestBehavior.AllowGet);
我發現它所做的是調用.Select綁定事件,並從數據庫中獲取數據。它不會使用我複製的行傳回的JSON結果,它會覆蓋它。 – PeterG