Am I injecting this correctly?
string myScriptName = \"EventScriptBlock\";
string myScript = string.Empty;
//Verify script isn\'t already registered
if (!Cl
I have a feeling this is related to your asp.net/html markup.
Do you have a form tag like so in your .aspx file?
<form id="form1" runat="server">
....
</form>
You can use registerstartupscript instead of registerclientscriptblock!
RegisterStartupScript When you use RegisterStartupScript, it will render your script after all the elements in the page (right before the form's end tag). This enables the script to call or reference page elements without the possibility of it not finding them in the Page's DOM
RegisterClientScriptBlock When you use RegisterClientScriptBlock, the script is rendered right after the Viewstate tag, but before any of the page elements. Since this is a direct script (not a function that can be called, it will immediately be executed by the browser. But the browser does not find the label in the Page's DOM at this stage and hence you should receive an "Object not found" error
Difference between registerstartupscript and registerclientscriptblock
protected void Page_Load(object sender, System.EventArgs e)
{
string myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
myScript += "alert('hi');";
myScript += "\n\n </script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "myKey", myScript, false);
}
You should use RegisterStartupScript.
Both RegisterStartupScript and RegisterClientScriptBlock will work.
Problem lies in myScript (string variable).In myScript variable you need to use alert variable only, as whenever you use this, script tag will be added automatically to your page's HTML at runtime. To check this right on your page and see the source of the page.
protected void Page_Load(object sender, EventArgs e)
{
string myScript = string.Empty;
//myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
string registerKey = "alert('RegisterClientScriptBlock');";
myScript = "alert('RegisterStartupScript');";
Page.ClientScript.RegisterStartupScript(this.GetType(), "RegisterStartupScript", myScript, true);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RegisterClientScriptBlock", registerKey, true);
}
Note: I have executed RegisterStartupScript first and than RegisterClientScriptBlock.But RegisterStartupScript alert will be executed at last, as it will be added at the end of the page. RegisterClientScriptBlock will always be added at the starting of the page.