Откройте окно в новой вкладке, используя кнопку ASP. NET, C# и код позади страницы. - PullRequest
4 голосов
/ 02 марта 2020

Я работаю на веб-сайте, который создает внутренние отчеты, и мне было поручено открыть эти отчеты в новой вкладке / окне с ограничением на то, что любые сценарии должны запускаться из кода позади, а не записываться в части html / aspx веб-сайта.

Моя текущая попытка тестирования кода заключается в следующем:

 protected void Button2_Click(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", "window.open('http://www.google.com','_newtab');", true);
    }

Код кнопки:

     <td>
          <asp:Button ID="Button2" runat="server" Text="Search" Width="83px" OnClick="Button2_Click" />
     </td>

Это прямой захват от Пример проекта, который показывает, как это сделать. проблема в том, что ничего не происходит. как будто код пропускается Visual Studio. Я также проверил, что все те же элементы находятся в разделе «Использование» в верхней части кода. мне нужен менеджер сценариев или что-то? у кого-нибудь есть предложения о том, что я могу пропустить?

1 Ответ

0 голосов
/ 02 марта 2020

Кажется, вы пытаетесь открыть new window на button click, но _newtab, что недопустимо.

Вы должны попробовать это следующим образом:

Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", "window.open('http://www.microsoft.com', '_blank');", true);

Update:

Your .CS File

protected void ButtonClick(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", "window.open('http://www.microsoft.com', '_blank');", true);

    }

Your Aspx File

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebFormTest.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>

         <asp:Button Text="Open New Window" OnClick="ButtonClick"  type="button" runat="server" />

        </div>


    </form>

</body>
</html>

Надеюсь, это поможет тому, чего вы пытаетесь достичь.

...