2013-06-03 185 views
8

我有一个像打开URL在新标签页

Response.Redirect("~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher"); 

的网址我想打开这个网址在浏览器的新标签。 我想下面的代码...

string pageurl = "~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher"; 
Response.Write("<script>"); 
Response.Write("window.open('" + pageurl + "','_blank')"); 
Response.Write("</script>"); 

也是我尝试下面

string pageurl = "~/webpages/frmCrystalReportViewer.aspx?VoucherNo=" + txtVoucherNo.Text + "&VoucherDate=" + txtVoucherDate.Text + " &strUserCode=" + strUserCode.ToString() + "&strCompanyCode=" + strCompanyCode.ToString() + "&formName=frmPaymentVoucher"; 
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "popup", "window.open('" + pageurl + "','_blank')", true); 

还我试图

<asp:Button ID="btnPrint" Text="Print" runat="server" OnClick="btnPrint_Click" OnClientClick="aspnetForm.target ='_blank';"/> 

但都没有工作。 请告诉我任何其他解决方案。 在此先感谢。

回答

9

您使用的网址为并且它无法通过javascript进行识别。你应该使用RESOLVEURL方法,

URL转换为一个是发出请求的客户端(C)使用的MSDN

在你的情况下处理与网址:

Response.Write(String.Format("window.open('{0}','_blank')", ResolveUrl(pageurl))); 
+2

或者只是删除代字号相对于应用程序根目录。 –

+0

@GrantThomas是对的。感谢您的提高。 –

1

在JavaScript的帮助下,我们可以将窗体的目标属性设置为_blank,只要我们想在新窗口中打开页面。请尝试以下

我有一个ASP.Net按钮

<asp:Button ID="btnPrint" runat="server" Text="PRINT BILL" Onclick="btnPrint_Click" OnClientClick="SetTarget();" /> 

我打电话的SetTarget()的ASP.Net按钮控制的JavaScript函数的OnClientClick事件下面

<script type = "text/javascript"> 
function SetTarget() { 
    document.forms[0].target = "_blank"; 
} 
</script> 

调用描述btnPrint_Click方法OnClick事件控件如下所述

protected void btnPrint_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("ReportViewer1.aspx"); 
    } 
+0

这有一个问题。在Javascript运行之后,与窗体上的任何控件(不仅仅是按钮)的任何交互都将导致打开新的选项卡。 – Paul

相关问题