是否可以放弃/中止在发出新请求时仍在处理的RadAjaxRequest?

时间:2013-09-26 20:14:22

标签: c# asp.net ajax telerik radajaxmanager

我有一个C#网络应用程序向用户显示报告,有时报告会在几分钟左右生成(而不是几秒钟)。

我有RadTreeView个“ReportType”链接,点击后会使用客户端的RadAjaxRequest执行RadAjaxManager

function RadTreeviewNodeClicked(sender, eventArgs) {
            try {
                console.log("fired again: " + eventArgs.get_node().get_text());
                var radAjaxManager = $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>");
                radAjaxManager.ajaxRequest("NodeClicked");
            } catch (error) {
                console.log("error on nodeclicked");
            }
        }

 //from my pageload
 radAjaxManager1 = RadAjaxManager.GetCurrent(Page);
 radAjaxManager1.AjaxRequest += RadAjaxManager1_AjaxRequest;
 radAjaxManager1.ResponseScripts.Add("AttachJQueryUIDateTimePickers();");
 radAjaxManager1.AjaxSettings.AddAjaxSetting(radAjaxManager1,pnlRightContent,RadAjaxLoadingPanel1);
 radAjaxManager1.ClientEvents.OnResponseEnd = "ResponseEnd";

服务器上的ajaxRequest处理程序为已点击的链接加载相应的报告,并在asp:面板的右侧显示它。菜单和面板都包含在RadAjaxPanel

如果报告数据仍在加载(存储过程正在执行),并且用户单击另一个链接:

  • 触发客户端事件
  • 服务器完成第一个事件
  • 启动了respondeEnd事件
  • 服务器开始处理第二个事件

我想在点击后续事件时放弃/中止第一个事件。这可能吗?

1 个答案:

答案 0 :(得分:0)

通过将rad Ajax Manager的队列大小设置为0,我发现Telerik可以实现:

        radAjaxManager1.RequestQueueSize = 0;