web-dev-qa-db-fra.com

Ouvrir une URL dans un nouvel onglet

J'ai une url comme 

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

Je veux ouvrir cette URL dans un nouvel onglet de navigateur ... J'ai essayé ci-dessous le code ...

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

aussi j'ai essayé ci-dessous

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

aussi j'ai essayé 

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

mais tous ne fonctionnent pas ..__ S'il vous plaît dites-moi une autre solution . Merci d'avance.

10
Pallavi Sagar

Vous utilisez une URL avec ~ et il ne sera pas reconnu par javascript. Vous devez traiter l’URL avec ~ en utilisant ResolveUrl method qui 

convertit une URL en une utilisable sur le client demandeur (c) msdn

Dans ton cas: 

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

Avec l’aide de JavaScript, nous pouvons définir la propriété target de formulaire sur _blank chaque fois que nous voulons ouvrir la page dans une nouvelle fenêtre. Essayez ce qui suit

J'ai un bouton ASP.Net

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

J'appelle l'événement OnClientClick de la fonction JavaScript SetTarget () du contrôle de bouton ASP.Net, comme décrit ci-dessous.

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

appel de la méthode btnPrint_Click Contrôle d'événement OnClick comme décrit ci-dessous

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

La réponse donnée par anand360 a fonctionné pour moi. Merci!!

J'ai légèrement modifié JavaScript comme suit pour accéder uniquement à l'élément souhaité.

document.getElementById["element_id"].target = "_blank";
0
Watz