MVC Telerik网格 - 取消更新AJAX请求

时间:2016-07-13 09:18:02

标签: jquery ajax asp.net-mvc telerik telerik-grid

这是我的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;请求。

有可能吗?

感谢您的回答!

1 个答案:

答案 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

http://www.telerik.com/forums/cancel-ongoing-ajax-filter-request-and-start-new-one#tQxdD9YFpESlQK_zrVC4jg

也许并非完全不可能,但肯定需要一些额外的工作。