2014-07-14 4 views
1

리포트 제출 버튼을 클릭하면 pdf 형식으로 보고서가 생성되어 pdf가 다운로드 될 때 페이지가 새 페이지로 리디렉션되어야하는 요구 사항이 있습니다. 지금 당장은 새 창에서 pdf를 생성하고 다운로드 된 PDF 파일에 대해 window.open을 사용하여 창을 열 수 있습니다. 그런 다음 이전 탭은 새 URL로 리디렉션됩니다.클릭하여 리디렉션 제출을 클릭하십시오.

내가 필요한 프로세스는 새 탭을 열지 않고도 다운로드가 수행되어야하며 페이지가 새 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

서버에서 문서 URL을 location.href로 만들 수 있습니까? 그렇다면 사용자가 프롬프트를 열고 저장합니다. –

+0

Iframe을 사용하여 PDF에 대한 소스를 설정할 수 있습니다. –

+0

window.open (dunno why location.href)을 document.URL로 변경하면 pdf 다운로드가 수행되지 않으며 다운로드도 리디렉션도하지 않습니다 – user3405913

답변

0

이 솔루션과 매우 유사한 솔루션을 사용할 수 있습니다.

을 직접 리디렉션을하지 않습니다하지만 단순히 대신 새 창을 사용하는 바로 일명 iframe, 인라인 프레임을 사용합니다. iframe이 실행될 때까지 기다립니다. 여기에 표시된 것처럼 쇼를하려면, 그 onload 이벤트에 가입 :

iframe의 온로드 내부 리디렉션을한다.

+0

iframe을 사용하는 동안 src 및 visibility attribs를 올바르게 설정 했습니까? string strJavascriptText = string.Empty; 문자열 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

관련 문제