Reputation: 89
I am working on a website that produces internal reports and I have been tasked with opening those reports in a new tab/window with the restriction that any scripts must be run from the code behind and not written in the html/aspx portion of the website.
my current attempt at testing the code is this:
protected void Button2_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "OpenWindow", "window.open('http://www.google.com','_newtab');", true);
}
The Button code is:
<td>
<asp:Button ID="Button2" runat="server" Text="Search" Width="83px" OnClick="Button2_Click" />
</td>
This is a direct grab from the example project that shows how to do this. the problem is that nothing happens. it's as if the code is getting skipped over by Visual Studio. I have also checked that all of the same items are in the "Using" section at the top of the code. do i need to have a script manager or something? does anyone have suggestions on what i may be overlooking?
Upvotes: 4
Views: 3237
Reputation: 22523
Seems you are trying to open
new window
onbutton click
but_newtab
which is not valid.
You should try this way:
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>
Hope it would help what you are trying to achieve.
Upvotes: 1