6
votes

i have some code in OnInit hanlder

if (!Page.ClientScript.IsStartupScriptRegistered(GetType(), "MyScript"))
{
    Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", GetStartupScript(), true);
}

here i try to register some java script code. and i want it to work on button click event. but it doesn't execute. it executes only after refreshing page. can anyone explain me why it doesn't execute?

thnx in advance!

3
Might be related to Page Life Cycle events. You may look at msdn.microsoft.com/en-us/library/ms178472(v=vs.80).aspx - Nazmul

3 Answers

13
votes

Try this:

ScriptManager.RegisterStartupScript(this, typeof(string), "Error", 
    "alert('hi');", true);

The issue is that on some pages you might have declared a ScriptManager. Only one ScriptManager is allowed per page so you have to use the existing ScriptManager to register any scripts.

Note that the RegisterStartupScript is a static method; do not call it on the instance of your ScriptManager (it will cause a compile error in C# but only a warning in VB.NET).

This link has a bit more info on this issue.

2
votes
 string msg = "This is variable message";
 Page.ClientScript.RegisterStartupScript(typeof(Page), "well1", "<script>alert('" + msg + "');</script>");
-4
votes

this worked fine for me :

Response.Write("<script type='text/javascript'>alert('" + AlerteMsg + "');</script>");