Hello ,
I am using web matrix and c#.
I want to open a new browser from a button click.
How can I do that?
Thanks in advance.
Steve

sadly you have missed the point of asp.net

you are using traditional html tags which renders asp.net useless.

read up on server controls.

<form runat=server>
<asp:button id=button1 runat=server>
</form>


--
in the page load add:
button1 .Attributes.Add("onclick", "whatEverYouWantTheJavaSciptToDo");


i think this is right

if you wanna learn .net

buy ASP.NET for Beginners using c# from WROX

jack
www.ansariltd.com

you are using traditional html tags which renders asp.net useless.

read up on server controls.

I would consider myself a professional ASP.NET Web Developer, and I use HTML over ASP.NET Controls wherever I can. This is taught; the less controls, the less server overhead. Instead of performing countless things to output a simple link, I rather use the anchor tag. If I have a button on my page which does nothing server side, why add the extra overhead of a server control? It's pointless.

Furthermore, you can control most standard html controls with ASP.NET, just give them an ID="" and runat="server" in their tag.

sadly you have missed the point of asp.net

you are using traditional html tags which renders asp.net useless.

read up on server controls.

<form runat=server>
<asp:button id=button1 runat=server>
</form>


--
in the page load add:
button1 .Attributes.Add("onclick", "whatEverYouWantTheJavaSciptToDo");


i think this is right

if you wanna learn .net

buy ASP.NET for Beginners using c# from WROX

jack
www.ansariltd.com

Actually I didn't think I missed the point. The question was simple and answered. No requirements were stated. And besides that

OnClick could have contained ="Load_NewPage()" which points to a Load_NewPage() function (or method) in the C# code behind. I just gave the suggestion as a general means of doing it.

But then again, he can use whatever method he wants!

:cool:

Well, a new article on MSDN came out yesturday, titled Improving ASP.NET Performance, and I'll quote it:

---
Use Server Controls Where Appropriate

The HTTP protocol is stateless; however, server controls provide a rich programming model that manages state between page requests by using view state. Server controls require a fixed amount of processing to establish the control and all of its child controls. This makes server controls relatively expensive compared to HTML controls or possibly static text. Scenarios where server controls are expensive include the following:

  • Large payload over low bandwidth. The more controls that you have on a page, the higher the network payload is. Therefore, multiple controls decreases the time to last byte (TTLB) and the time to first byte (TTFB) for the response that is sent to the client. When the bandwidth between client and server is limited, as is the case when a client uses a low-speed dial-up connection, pages that carry a large view state payload can significantly affect performance.
  • View state overhead. View state is serialized and deserialized on the server. The CPU effort is proportional to the view state size. In addition to server controls that use view state, it is easy to programmatically add any object that can be serialized to the view state property. However, adding objects to the view state adds to the overhead. Other techniques such as storing, computed data or storing several copies of common data adds unnecessary overhead.
  • Composite controls or large number of controls. Pages that have composite controls such as DataGrid may increase the footprint of the view state. Pages that have a large number of server controls also may increase the footprint of the view state. Where possible, consider the alternatives that are presented later in this section.

When you do not need rich interaction, replace server controls with an inline representation of the user interface that you want to present. You might be able to replace a server control under the following conditions:

  • You do not need to retain state across postbacks.
  • The data that appears in the control is static. For example, a label is static data.
  • You do not need programmatic access to the control on the server-side.
  • The control is displaying read-only data.
  • The control is not needed during postback processing.

Alternatives to server controls include simple rendering, HTML elements, inline Response.Write calls, and raw inline angle brackets (<% %>). It is essential to balance your tradeoffs. Avoid over optimization if the overhead is acceptable and if your application is within the limits of its performance objectives.

---

Now, if this doesn't illustrate what I've said, I'm not sure if anything could ;-).

without going into too much argument over html vs asp.net controls etc (and I also use asp.net controls sparingly) I think you all missed the point of the original question :) haha

I took it as he wanted to know how to open a new window not the button click event. So in answer to the original question - to open a link in a new browser window you need to set "target=_blank". That is if you are using an anchor (or hyperlink if you insist on them - but i strongly suggest you try an html anchor and some css). Otherwise use the window functions in javascript if you are going that way.
:)

One way is with a JScript function in the OnClick event for a button.

<form id="Form1">
<INPUT Type="button" OnClick="window.open('http://www.google.ca')" value="enter">
</form>

That help?

Thanks a lot for your help man ... You posted solution in 2003 about opening new window through ASP .net button ... I was so frustrated because of that button problem but your solution helped me .. thanks a lot

I have a textbox that the user can enter a URL in, I then have a Test URL button that calls:

protected void btnTestURL_Click(object sender, EventArgs e)
        {
            string sTargetURL = "http://" + tbWebsite.Text.ToLower();
            Response.Write("<script>open('" + sTargetURL + "');</script>");
        }

Lee

This article has been dead for over six months. Start a new discussion instead.