这是我的Telerik网格代码:
@(Html.Telerik().Grid(Model).Name("DistributionGrid").DataKeys(dataKeys => dataKeys.Add("DistributionID")).
ToolBar(toolBar => toolBar
.Template(@<text>
@{
<b>Distribution</b>
<ul class='ul-bulk-menu'>
<li><button id='newDistribution' class='t-button t-button-icon' title='New Distribution'><span>Add Distribution</span></button></li>
</ul>
}
</text>))
.Columns(c =>
{
c.Command(command =>
{
command.Edit().ButtonType(GridButtonType.Image).HtmlAttributes(new { title = "Edit Distribution"});
command.Delete().ButtonType(GridButtonType.Image).HtmlAttributes(new { title = "Delete Distribution" });
}).Width(100);
c.Bound(o => o.DistTo);
c.Bound(o => o.DistCC);
})
.Scrollable(o => o.Height(440))
.Resizable(o => o.Columns(true))
.Reorderable(o => o.Columns(true))
.DataBinding(o => o.Ajax()
.Select("SelectDist", "Mail")
.Update("UpdateDist", "Mail")
.Delete("DeleteDist", "Mail")
)
.Editable(editing => editing.Mode(GridEditMode.InForm))
.ClientEvents(events => events.OnCommand("Grid_OnRequestStart"))
)
</div>
我有一个jQuery打断了&#34;更新&#34;使用以下代码使用jQuery的函数:
function Grid_OnRequestStart(e) {
if (e.name == "update") {
alert(e.dataItem.DistTo + " - " + $("#DistTo").val());
if (confirm("Are you sure?")) {
alert("Distribution was updated!");
}
else {
// Here I want to cancel the update request
}
}
}
在&#34; else&#34;选项我想取消AJAX&#34;更新&#34;请求。
有可能吗?
感谢您的回答!
答案 0 :(得分:0)
请尝试这行代码取消ajax请求。
function Grid_OnRequestStart(e) {
if (e.name == "update") {
alert(e.dataItem.DistTo + " - " + $("#DistTo").val());
if (confirm("Are you sure?")) {
alert("Distribution was updated!");
}
else {
e.set_enableAjax(false); // cancel ajax request
}
}
}
更新:
根据Telerik文档,这里是requestStart
事件
事件处理函数上下文(可通过this关键字获得) 将被设置为数据源实例。
可以阻止远程请求。为此,执行 处理函数中的e.preventDefault()。
只有读取请求才能阻止此事件。
论坛的其他帖子也提到了这一点,请参阅下面的附件链接。
http://www.telerik.com/forums/prevent-datasource-read-request-to-server#70iyzKcdAEibUPEpGJL_hw
也许并非完全不可能,但肯定需要一些额外的工作。