我有一個簡單Telerik的網格爲ASP.NET MVC阿賈克斯delete命令。然而,刪除工作,頁面顯示錯誤,並且不會更新。錯誤刪除Telerik的電網運行ASP.NET MVC的
我也想呼籲AJAX調用返回自定義JavaScript,但無法弄清楚在何處放置代碼。
這裏的觀點:
Html.Telerik()
.Grid<ScenarioVm>(Model)
.Name("scenarioGrid")
.DataBinding(dataBinding => dataBinding
.Ajax()
.Delete("Delete", "Scenario")
.Select("Index", "Scenario"))
.DataKeys(keys => keys.Add(c => c.Id))
.Columns(columns =>
{
columns.Template(o => o.Name)
.Title("Scenario")
.FooterTemplate(@<text>Total @Model.Count()</text>);
columns.Bound(o => o.IsLocked);
columns.Bound(o => o.ContractMonth);
columns.Bound(o => o.CreateDate);
columns.Command(commands => commands
.Delete()
.ButtonType(GridButtonType.Image))
.Title("Delete");
})
.Sortable()
.Scrollable(scroll => scroll.Height(200))
.ClientEvents(events => events.OnDelete("onDelete")))
JavaScript時被AJAX調用之前調用:
function onDelete(e) {
var scenario = e.dataItem;
if (scenario.CanDelete == false) {
alert("Can not delete " +
e.dataItem.Name +
": there exists a solution!");
return false;
} else {
$.blockUI({
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .5,
color: '#fff'
}
});
return true;
}
}
控制器的方法:
[HttpPost]
[GridAction]
public ActionResult Delete(Scenario scenario)
{
Logger.Info("Delete scenario " + scenario);
if (scenario == null)
{
return new EmptyResult();
}
try
{
_scenarioRepository.Delete(scenario);
Logger.Info("Successfully deleted " + scenario);
}
catch(Exception e)
{
Logger.Error(scenario + e.Message, e);
var result = new JsonResult
{
JsonRequestBehavior = JsonRequestBehavior.DenyGet,
Data = new {
ErrorCode = 1,
ErrorMessage = e.GetType() + ": " + e.Message
}
};
return result;
}
return new EmptyResult();
}
'.ClientEvents(事件=> events.OnDelete( 「onDelete」)的onComplete( 「的onComplete」))'導致編譯錯誤:編譯器錯誤消息:CS1061: 'Telerik.Web.Mvc.UI.Fluent.GridClientEventsBuilder' 確實不包含'OnComplete'的定義,並且沒有找到接受'Telerik.Web.Mvc.UI.Fluent.GridClientEventsBuilder'類型的第一個參數的擴展方法'OnComplete'(你是否缺少using指令或程序集引用?) – jprusakova 2012-07-26 14:42:40