0

我有一个 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")异步操作调用吗?如果我能做到这一点,我将能够立即导航到我的页面,而报告将随时处理。

检查下图:

在此处输入图像描述

4

1 回答 1

0

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

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

以我在 Telerik Reporting 方面的有限经验,我不相信他们将它设计用于大部分异步操作。

于 2012-11-15T19:16:18.107 回答