30

我想在按钮单击时在浏览器的新选项卡中打开一个页面。

我在谷歌上搜索了很多,但我找不到任何东西。

这是我的按钮。

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

你能帮我怎么做吗?

4

18 回答 18

43

你可以使用window.open. 像这样:

protected void btnNewEntry_Click(object sender, EventArgs e)
{ 
   Page.ClientScript.RegisterStartupScript(
   this.GetType(),"OpenWindow","window.open('YourURL','_newtab');",true);
}
于 2012-05-08T06:50:20.573 回答
8

为什么不直接从 OnClick 调用 window.open?

<asp:Button ID="btnNewEntry" runat="Server" CssClass="button" Text="New Entry" OnClick="window.open('New.aspx')" />
于 2014-10-22T21:58:39.797 回答
5

注意重置 target,否则所有其他调用都Response.Redirect将在新选项卡中打开,这可能不是您想要的。

<asp:LinkButton OnClientClick="openInNewTab();" .../>

在 javaScript 中:

<script type="text/javascript">
    function openInNewTab() {
        window.document.forms[0].target = '_blank'; 
        setTimeout(function () { window.document.forms[0].target = ''; }, 0);
    }
</script>
于 2016-11-18T16:51:01.690 回答
4

对主窗体/按钮单击事件使用 JavaScript。一个例子是:

Context.Response.Write("<script language='javascript'>window.open('AccountsStmt.aspx?showledger=" & sledgerGrp & "','_newtab');</script>")
于 2014-05-04T06:11:13.737 回答
3

试试这个而不是重定向......

Response.Write("<script>");
Response.Write("window.open('ClickPicture.aspx','_blank')");
Response.Write("</script>");
于 2012-05-08T06:51:45.397 回答
3

试试这个

<a href="#" target="_blank">Link</a>
于 2012-05-08T07:23:05.680 回答
2

刚遇到同样的问题。客户端不合适,因为该按钮正在从列表视图发回信息。

在way2coding上看到了与 Amaranth 相同的解决方案,但这对我不起作用。

但是,在评论中,有人发布了一个类似的解决方案,确实有效

OnClientClick="document.getElementById('form1').target ='_blank';"

其中 form1 是您的 asp.net 表单的 id。

于 2012-10-07T10:53:22.583 回答
1

您必须使用 Javascript,因为后面的代码仅是服务器端。我很确定这行得通。

<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");
}
于 2012-05-08T06:53:57.830 回答
1
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));
    }
于 2019-02-08T05:29:03.003 回答
1

您可以像这样添加到您的按钮 OnClientClick :

<asp:Button ID="" runat="Server" Text="" OnClick="btnNewEntry_Click" OnClientClick="target ='_blank';"/>

这将更改所有按钮的当前表单目标以在新选项卡中打开。因此,要完成修复,您可以使用 2 种方法:

  1. 对于此表单中的任何其他按钮,向客户端添加单击“重置表单目标”功能,如下所示:
function ResetTarget() {
   window.document.forms[0].target = '';
}
  1. 在 setTimeout() 中的函数内添加相同的代码,这样代码将在片刻后重置表单的目标。看到这个答案https://stackoverflow.com/a/40682253/8445364
于 2020-07-14T14:23:01.503 回答
0

使用JavaScript在新选项卡(而不是新窗口)中打开 URL

作者无法选择在新选项卡而不是新窗口中打开。

浏览器决定是打开一个新标签还是打开一个新窗口。作为开发人员,您无法控制这一点。

于 2014-02-27T13:44:48.117 回答
0

在 vb.net 中,单击按钮或单击链接按钮,这将起作用。

System.Web.UI.ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "openModal", "window.open('CertificatePrintViewAll.aspx' ,'_blank');", True)
于 2020-03-05T07:39:29.740 回答
0

在检查验证后添加 target='_blank' :

    <asp:button id="_ButPrint"  ValidationGroup="print" OnClientClick="if (Page_ClientValidate()){$('form').attr('target','_blank');}"  runat="server" onclick="ButPrint_Click" Text="print" />
                                                                 

于 2020-09-28T19:11:10.683 回答
0

您可以在 ASPX HTML 前端执行此操作,以使按钮转到新选项卡以动态显示 ASP.NET 站点中的页面:

        <asp:Button ID="btnNewEntry" CssClass="button"  OnClientClick="window.open('https://website','_blank'); return false;" text="WebsiteName"  runat="server" />
于 2021-02-22T19:38:16.007 回答
0

如果 url 是动态的,并且您想在后面的代码中控制它

<asp:Button ID="btnNewEntry" runat="Server" Text="New Entry" />

//code behind
var id = 0;
btnNewEntry.OnClientClick = $"window.open('New.aspx?ID={id}')";
于 2022-02-18T18:45:24.290 回答
-1

一个简单的解决方案:

<a href="https://www.google.com" target="_blank">
    <button type="button">Open new tab</button>
</a>
于 2016-04-01T07:57:49.363 回答
-3

您应该在客户端执行此操作。您可以使用 target="_blank" 和 style="display:none" 放置一个 html 超链接。之后创建一个javascript函数,如下所示

function openwindow(){
$("#hyperlinkid").click();
return false;
}

将此函数用作按钮的 onclientclick 事件处理程序,例如 onclientclick="return openwindow()" 您需要在页面中包含一个 jquery。

于 2012-05-08T07:49:28.457 回答
-4

Add_supplier 是表单的名称

private void add_supplier_Load(object sender, EventArgs e)
{
    add_supplier childform = new add_supplier();
    childform.MdiParent = this;
    childform.Show();
}
于 2013-11-27T10:10:37.543 回答