Question

http://i.stack.imgur.com/dVjHt.jpg

enter image description here

I never understood the real usage of the Control , type,key usages of this class.

In general Ive always used with : this , GetType() , "xx"

but now I truly want to understand .


msdn :

Control : " the control that is registering the client script"

so...? what difference does it makes who registered it ? the script will be in the head of the page...

Type: "the type of the client script block"

type ??? its javascript. why does he want another type from me ?

Key: "a unique indentifier"

That I can understand - for cases which later to remove... but I'd love for some more advanced explanations

Can I have please , a real life scenario in which I TRULY have to play with those params ?

Était-ce utile?

La solution

the most important part is Control which control in html tags you want to register the script for example if you have user control and you want to run the script just for that use this line

ScriptManager.RegisterStartupScript(this, this.GetType(), "alertscript", "document.getElementById('userControl_h1TAG')", true); 

but when you want to register the block and script to all part of that page use this line in CS code of user-control :

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "alertscript", "document.getElementById('page_h1TAG')", true);

Autres conseils

The method System.Web.UI.ScriptManager.RegisterClientScriptBlock calls behind the scenes to the internal method System.Web.UI.ScriptRegistrationManager.RegisterClientScriptBlock that uses the parameter control to make a call to System.Web.UI.ClientScriptManager.RegisterClientScriptBlock by referencing control.Page.ClientScript.RegisterClientScriptBlock.

So, actually when you making a call like this:

MyScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertScript", "alert('hi')", true);

It's identical to calling:

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alertScript", "alert('hi')", true);        

The type parameter comes handy when two different types trying to register scripts with identical string keys.

After looking on MSDN I found the method with slightly different parameters, but I think the answers should give you more insight: (http://msdn.microsoft.com/en-us/library/bb350750.aspx) :

Control: Client script blocks that are registered by using this method are sent to the page only when control represents a control that is inside an UpdatePanel control that is being updated.

Type: This parameter is usually specified by using the typeof operator (C#) or the GetType operator (Visual Basic) to retrieve the type of the control that is registering the script.

And I guess the key just is for making sure that one codeblock is not included twice? Or it gives you a warning if you use the same key again?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top