2013-06-03 43 views
8

Tôi có một url nhưMở một URL trong một tab mới

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

Tôi muốn mở url này trong tab mới của trình duyệt. tôi đã cố gắng bên dưới mã ...

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>"); 

tôi cũng đã cố gắng bên dưới

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); 

cũng tôi đã cố gắng

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

nhưng tất cả đều không làm việc. Vui lòng cho tôi biết bất kỳ giải pháp nào khác. Cảm ơn trước.

Trả lời

9

Bạn đang sử dụng URL với ~ và nó sẽ không nhận dạng được bằng javascript. Bạn nên xử lý url với ~ bằng cách sử dụng ResolveUrl phương pháp mà

chuyển đổi URL vào một trong đó là có thể sử dụng trên máy khách yêu cầu (c) MSDN

Trong trường hợp của bạn:

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

Hoặc chỉ cần loại bỏ dấu ngã có liên quan đến gốc ứng dụng. –

+0

@GrantThomas là đúng. Cảm ơn bạn đã cải thiện. –

1

Với sự trợ giúp của JavaScript, chúng tôi có thể đặt thuộc tính mục tiêu của biểu mẫu thành _blank bất cứ khi nào chúng tôi muốn mở trang trong cửa sổ mới. Hãy thử như sau

Tôi có một nút ASP.Net

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

Tôi gọi SetTarget() hàm JavaScript OnClientClick sự kiện của Button Control ASP.Net như mô tả dưới đây

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

gọi Phương thức btnPrint_Click Sự kiện OnClick Kiểm soát như được mô tả bên dưới

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

Có vấn đề với điều này. Sau khi Javascript chạy, bất kỳ tương tác nào với bất kỳ điều khiển nào trên biểu mẫu (không chỉ là nút) sẽ khiến một tab mới được mở. – Paul

Các vấn đề liên quan