2014-07-14 3 views
1

У меня есть требование в моей системе, где отчет создается в формате pdf при нажатии кнопки отправки, тем самым загружая его и загружая pdf, страница должна перенаправляться на новую страницу. Сейчас я могу открыть окно, используя window.open для pdf-файла, который генерирует PDF в новом окне и загружается, а затем старая вкладка перенаправляется на новый URL-адрес.скачать pdf прямо на submit нажмите и перенаправить

Процесс, который мне нужен, заключается в том, что загрузка происходит без открытия новой вкладки, а затем страница должна перенаправляться на новый URL-адрес. Я смог сделать одно, но не оба вместе.

Любые предложения были бы полезными.

string strJSCPTText = string.Empty; 

string url = clsAppConfig.SiteURL + "PDFReport.aspx?qid=" + objQ1.QId; 

strJSCPTText += "window.open('" + url + "', 'popup_window', 'width=500,height=300,left=100,top=100,resizable=yes');"; 

strJSCPTText += "window.location.href = '" + clsAppConfig.SiteURL + "QList.aspx" + "';"; 

ClientScript.RegisterStartupScript(this.GetType(), "script", strJSCPTText , true); 
+0

Можете ли вы указать location.href URL-адрес документа на сервере? Если это так, пользователь получит приглашение open/save as. –

+0

Вы можете использовать Iframe и установить источник для этого в ваш PDF-файл. –

+0

change window.open (dunno why location.href) to document.URL для загрузки в формате PDF ничего не делает, он не загружает и не перенаправляет – user3405913

ответ

0

Вы можете использовать решение, очень похожее на это. Но просто, вместо того, чтобы использовать новое окно, просто использовать встроенный фрейм, он же iframe:

И не делать редирект непосредственно. Подождите, пока iframe не будет закодирован. Для того, чтобы сделать шоу, подписаться на его onload событие, как показано здесь:

есть, сделать редирект внутри OnLoad iframe «s.

+0

при использовании iframe я просто установил src и видимость атрибутов правильно ??? string strJavascriptText = string.Empty; string url = clsAppConfig.SiteURL + "PDFReport.aspx? Qid =" + objQ1.QId; rptpdfTBCG.Visible = true; rptpdfTBCG.Attributes.Add ("src", url); strJSCPTText + = "window.location.href = '" + clsAppConfig.SiteURL + "QList.aspx" + "';"; ClientScript.RegisterStartupScript (this.GetType(), "script", strJSCPTText true); – user3405913

+0

Да, см. Мое обновление. Проблема заключалась в том, что вы перенаправили страницу до того, как у iframe появилась возможность загрузить. – JotaBe

Смежные вопросы