【问题标题】:How to launch another aspx web page upon button click?单击按钮后如何启动另一个 aspx 网页?
【发布时间】:2011-11-14 00:57:27
【问题描述】:

我有一个 asp.net 应用程序,用户可以在其中单击一个按钮并启动另一个页面(在同一个应用程序中)。我面临的问题是原始页面和新启动的页面都应该启动。

我尝试了 response.redirect,但这往往会卸载原始页面。

有什么建议吗?

【问题讨论】:

  • 你是说页面应该在新窗口中打开?

标签: asp.net vb.net buttonclick


【解决方案1】:

使用 html 按钮和 javascript?在javascript中,window.location用于改变当前窗口的url位置,而window.open将打开一个新窗口

<input type="button" onclick="window.open('newPage.aspx', 'newPage');" />

编辑:啊,刚刚发现:如果你的表单标签的ID是form1,在你的asp按钮中设置这个属性

OnClientClick="form1.target ='_blank';"

【讨论】:

  • 我的第二个(已编辑)解决方案可能会导致您的回发结果显示在新浏览器中,而旧窗口不会改变。如果您想发布到当前窗口并打开一个新窗口,请使用 Claudio 的回答
  • 感谢您了解我的解决方案。当我在我的一个网站上使用它时,它似乎曾经可以恢复,但从那以后就停止了这种方式。因为你,我将不得不更改我的代码:)。
  • @KreepN 我只是在乱用你的代码,如果从他们之前的请求中读取Form.Target = "_blank"; 似乎可以工作。它设置他们的下一个请求以在新窗口中响应。例如:在 Page_Load 中设置它,所有回发到这个页面都会在一个新窗口中打开 ^^
【解决方案2】:

已编辑和修复(感谢 Shredder)

如果您的意思是要打开一个新标签,请尝试以下操作:

protected void Page_Load(object sender, EventArgs e)
{
    this.Form.Target = "_blank";
}

protected void Button1_Click(object sender, EventArgs e)
{

    Response.Redirect("Otherpage.aspx");
}

这将使原始页面保持打开状态,并导致当前页面上的重定向仅影响新标签。

-J

【讨论】:

  • 从编辑开始工作。如果人们正在寻找上述解决方案的替代方案,我会取消删除。
  • 如果您的表单有多个按钮,那就不好了。 “_blank”行将导致每次单击按钮时都会打开一个重复的页面。
  • @Zizzipupp 确实如此。 8 年前,尼克·罗兰多 (Nick Rolando) 的评论链中提到了这一点。
【解决方案3】:

此按钮发布到当前页面,同时在新的浏览器窗口中打开OtherPage.aspx。我想这就是你对...the original page and the newly launched page should both be launched.的意思

<asp:Button ID="myBtn" runat="server" Text="Click me" 
     onclick="myBtn_Click" OnClientClick="window.open('OtherPage.aspx', 'OtherPage');" />

【讨论】:

  • 如何关闭当前表单?
  • @DB: 不明白.. 导航到新视图是不够的。为什么需要打开一个新表单然后关闭当前表单?
  • OnClientClick="window.open('stackoverflow.com/');"这将打开新标签。
【解决方案4】:

如果您想使用 Code Behind,我可以为 asp:button 建议以下解决方案 -

ASPX 页面

<asp:Button ID="btnRecover" runat="server" Text="Recover" OnClick="btnRecover_Click" />

代码背后

    protected void btnRecover_Click(object sender, EventArgs e)
    {
        var recoveryId = Guid.Parse(lbRecovery.SelectedValue);
        var url = string.Format("{0}?RecoveryId={1}", @"../Recovery.aspx", vehicleId);

        // Response.Redirect(url); // Old way

        Response.Write("<script> window.open( '" + url + "','_blank' ); </script>");
        Response.End();
    }

【讨论】:

    【解决方案5】:

    你应该使用:

    protected void btn1_Click(object sender, EventArgs e)
    {
        Response.Redirect("otherpage.aspx");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多