6

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!

user1178399
  • 1,028
  • 8
  • 17
  • 32
  • Might be related to Page Life Cycle events. You may look at http://msdn.microsoft.com/en-us/library/ms178472(v=vs.80).aspx – Nazmul Apr 28 '12 at 15:20

3 Answers3

13

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.

somethingRandom
  • 811
  • 11
  • 16
  • 1
    This worked perfectly. If you want a short but good explanation, check [this link out.](http://codewala.net/2011/11/24/page-clientscript-registerstartupscript-is-not-working/) – But I'm Not A Wrapper Class Jun 30 '14 at 21:27
2
 string msg = "This is variable message";
 Page.ClientScript.RegisterStartupScript(typeof(Page), "well1", "<script>alert('" + msg + "');</script>");
Meryovi
  • 6,121
  • 5
  • 42
  • 65
-4

this worked fine for me :

Response.Write("<script type='text/javascript'>alert('" + AlerteMsg + "');</script>");
Joy
  • 1,707
  • 7
  • 29
  • 44