如何在生成时杀死/停止telerik报告

时间:2012-11-14 19:41:00

标签: c# asp.net c#-4.0 telerik telerik-reporting

我有一个Telerik ReportViewer和一个按钮。这是背后的代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ReportViewer1.Report = (Telerik.Reporting.Report)session["TelerikReportObject"];
            ReportViewer1.DataBind();
        }

    protected void ButtonKillThenNavigate_Click(object sender, EventArgs e)
    {
        // Here I need some mechanism to kill the Report (if it is still being generated) so I can immediately navigate to another page without a delay.
        // Now with my current code, a very noticeable delay exists before executing the redirection in the following line of code

        Response.Redirect("Home.aspx");
    }

如果无法终止该报告,我是否可以将ReportViewer1.Dispose()Response.Redirect("Home.aspx")一起作为异步操作来呼叫?如果我能做到这一点,我将能够立即导航到我的页面,而报告将随时处理。

检查下图:

enter image description here

1 个答案:

答案 0 :(得分:0)

一个非常简单的选项可能是在页面上只有一个普通的html链接Home.aspx。这应该将用户的浏览器带到Home.aspx并关闭其等待报告的连接。它可能不会取消报告生成(可能会一直持续到完成,然后关闭处理页面的过程)。但是从用户的角度来看,这有你想要的操作,只要普通的报告可以浪费资源。

除此之外,请查看ReportViewer1.RefreshReportCommand命令。我在这里猜测,但是您可以使用零数据重新配置ReportViewer,然后调用可能取消现有流程并快速生成零数据报告的刷新方法,然后完成。

由于我在Telerik报告方面的经验有限,我认为他们不会将其设计为大部分的异步操作。