Как убить/остановить отчет телерика во время его создания

У меня есть 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") как асинхронную операцию? Если я смогу это сделать, я смогу сразу же без задержки перейти на свою страницу, в то время как отчет будет удален, когда он захочет.

Проверьте изображение ниже:

введите здесь описание изображения


person yazanpro    schedule 14.11.2012    source источник


Ответы (1)


Одним из очень простых вариантов может быть просто обычная html-ссылка на Home.aspx на странице. Это должно привести браузер пользователя к Home.aspx и закрыть соединение в ожидании отчета. Вероятно, это не отменит генерацию отчета (которая, вероятно, будет продолжаться до завершения, а затем закроет процесс, обрабатывающий страницу). Но у этого есть операция, которую вы хотели бы с точки зрения пользователя, и только тратит ресурсы впустую, как обычный отчет.

Кроме этого, посмотрите на команду ReportViewer1.RefreshReportCommand. Я предполагаю, что вы можете перенастроить ReportViewer с нулевыми данными, затем вызвать метод обновления, который может отменить существующий процесс и очень быстро сгенерировать отчет с нулевыми данными, а затем закончить.

С моим ограниченным опытом работы с Telerik Reporting я не верю, что они по большей части предназначены для асинхронных операций.

person Thymine    schedule 15.11.2012