Pregunta RegisterClientScriptBlock usa los parámetros en escenarios reales?


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

enter image description here

Nunca entendí el uso real de la Control , type,key usos de esta clase.

En general, siempre he usado con: this , GetType() , "xx"

pero ahora realmente quiero entender.


msdn:

Controlar : "el control que está registrando el script del cliente"

asi que...? ¿Qué diferencia hace que lo haya registrado? el script estará en la cabeza de la página ....

Tipo: "el tipo de bloque de script de cliente"

tipo ??? es javascript ¿Por qué quiere otro tipo de mí?

Llave: "un indentificador único"

Eso lo puedo entender, para casos que luego eliminaré ... pero me encantaría tener algunas explicaciones más avanzadas

¿Puedo tener, por favor, una real escenario de vida en el que VERDADERAMENTE tiene que jugar con esos params?


11
2017-11-28 16:20


origen


Respuestas:


la parte más importante es Control qué control en etiquetas html quieres registrar la secuencia de comandos por ejemplo, si tiene control de usuario y quiere ejecutar el script solo para eso use esta línea

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

pero cuando quieres registrar el bloque y el script a toda la parte de ese página use esta línea en el código CS de control de usuario:

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

2
2017-11-29 11:10



El método System.Web.UI.ScriptManager.RegisterClientScriptBlock llama detrás del escenario al método interno System.Web.UI.ScriptRegistrationManager.RegisterClientScriptBlock que usa el parámetro controlar hacer una llamada a System.Web.UI.ClientScriptManager.RegisterClientScriptBlock haciendo referencia control.Page.ClientScript.RegisterClientScriptBlock.

Entonces, en realidad cuando haces una llamada como esta:

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

Es idéntico a llamar:

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

los tipo parámetro es útil cuando dos tipos diferentes intentan registrar scripts con claves de cadena idénticas.


0
2017-11-29 09:48



Después de buscar en MSDN, encontré el método con parámetros ligeramente diferentes, pero creo que las respuestas deberían brindarle más información: (http://msdn.microsoft.com/en-us/library/bb350750.aspx)

Controlar: Los bloques de script de cliente que se registran mediante este método se envían a la página solo cuando el control representa un control que está dentro de un control UpdatePanel que se está actualizando.

Tipo: Este parámetro generalmente se especifica utilizando el operador typeof (C #) o el operador GetType (Visual Basic) para recuperar el tipo de control que está registrando el script.

¿Y supongo que la clave es asegurarse de que un bloque de código no se incluya dos veces? ¿O le da una advertencia si usa la misma clave nuevamente?


0
2017-11-28 16:45