Je veux ouvrir une page dans un nouvel onglet du navigateur sur un clic de bouton.
J'ai beaucoup cherché sur google mais je n'ai rien trouvé.
Voici mon bouton.
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="btnNewEntry_Click" />
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Response.Redirect("New.aspx");
}
Pouvez-vous s'il vous plaît m'aider comment je peux faire ça?
Vous pouvez utiliser window.open
. Comme ça:
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(
this.GetType(),"OpenWindow","window.open('YourURL','_newtab');",true);
}
Pourquoi ne pas simplement appeler window.open directement depuis OnClick?
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="window.open('New.aspx')" />
Prenez soin de reset target , sinon tous les autres appels comme Response.Redirect
s'ouvriront dans un nouvel onglet, ce qui pourrait ne pas être ce que vous voulez.
<asp:LinkButton OnClientClick="openInNewTab();" .../>
En javaScript:
<script type="text/javascript">
function openInNewTab() {
window.document.forms[0].target = '_blank';
setTimeout(function () { window.document.forms[0].target = ''; }, 0);
}
</script>
Utilisez JavaScript pour l'événement de formulaire/bouton principal. Un exemple est:
Context.Response.Write("<script language='javascript'>window.open('AccountsStmt.aspx?showledger=" & sledgerGrp & "','_newtab');</script>")
essayez ceci plutôt que de rediriger ...
Response.Write("<script>");
Response.Write("window.open('ClickPicture.aspx','_blank')");
Response.Write("</script>");
Essaye ça
<a href="#" target="_blank">Link</a>
Je viens d'avoir le même problème. Le côté client n'était pas approprié car le bouton publiait des informations à partir d'une liste.
Vu la même solution que Amaranth sur way2coding mais cela ne fonctionna pas pour moi.
Cependant, dans les commentaires, quelqu'un a posté une solution similaire qui fonctionne
OnClientClick="document.getElementById('form1').target ='_blank';"
où form1 est l'id de votre formulaire asp.net.
Vous devez utiliser Javascript car le code derrière n'est que côté serveur. Je suis à peu près sûr que ça marche.
<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="btnNewEntry_Click" OnClientClick="aspnetForm.target ='_blank';"/>
protected void btnNewEntry_Click(object sender, EventArgs e)
{
Response.Redirect("New.aspx");
}
Add this Script
<script type = "text/javascript">
function SetTarget() {
document.forms[0].target = "_blank";
}
</script>
and
<asp:Button ID="BTNpRINT" runat="server" Text="PRINT" CssClass="btn btn-primary" OnClick="BTNpRINT_Click" OnClientClick = "SetTarget();"/>
and
protected void BTNpRINT_Click(object sender, EventArgs e)
{
Response.Redirect(string.Format("~/Print.aspx?ID={0}",txtInv.Text));
}