Estoy trabajando dentro de un control de usuario web (.ascx) que se va a incluir en un formulario web normal (.aspx), pero necesito poder insertarlo de forma dinámica código en el encabezado del documento desde el Control de usuario. En mis días de Coldfusion <cfhtmlhead> haría el truco. ¿Hay un equivalente de esto en ASP.NET o un truco similar?ASP.NET inserta código de forma dinámica en la cabecera
Respuesta
Para añadir marcado HTML, puede hacer lo siguiente:
En el código de su control de usuario puede acceder a Page.Header, que es en sí misma un control. Para que el control a continuación, puede añadir nuevos controles:
HtmlGenericControl newControl = new HtmlGenericControl("someTag");
newControl.Attributes["someAttr"] = "some value";
Page.Header.Controls.Add(newControl);
Para añadir marcado guión que no es necesario el acceso a la etiqueta de la cabeza en absoluto desde ASP.NET tiene los métodos de ayuda en la ClientScriptManager que haga el trabajo por usted:
Éstos son ejemplos de algunos de código también se puede poner en el código de control de usuario:
// Register some inline script:
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myAlertScript", "alert('hello!')", true);
// Register a script reference:
Page.ClientScript.RegisterClientScriptInclude(GetType(), "myLibraryScript", "~/Scripts/MyScriptLibrary.js");
this.Page.Header.Controls.Add
Al hacer esto, está agregando controles a la sección de la cabeza. Puede agregar cualquier tipo de control. Si cree que necesita agregar texto simple (o si desea escribir las etiquetas manualmente), consulte la clase LiteralControl.
Hay un poco de orientación sobre el uso de código C# para modificar el encabezado de la página here. Debería funcionar perfectamente desde cualquier código del lado del servidor que se ejecute antes de que se complete la carga de la página.
A simple p.
HtmlHead head = Page.Header;
HtmlTitle title = new HtmlTitle();
title.Text = "Test Page";
head.Controls.Add(title);
referencia HTMLHead está en espacio de nombres
System.Web.UI.HtmlControls
reemplazar el método para agregar los controles o referencias que necesita en el encabezado de la página, mientras que la página .aspx padres se carga en servidor Load del control personalizado() lado.
Tengo una solución simple para esto. Cree un caché de memoria en tiempo de ejecución basado en la url de la página (como una clave) que contenga x información sobre y (ya sea una referencia de archivo, texto de guión o clase que genere JavaScript) y serialice sus datos a JSON. Newtonsoft es útil para instancias de cualquier clase. De hecho, puede usar su salida para inicializar cualquier instancia nueva de una clase basada en la entrada dada. En cierto modo, eso significa que puede hacer que las instancias de cualquier clase en particular se creen automáticamente a pesar de que el usuario controle la instancia. Al final, crea un formulario web simple para servir como referencia de script y como punto final. Extrae el JavaScript (o lo que sea) y escupe el código del lado del cliente que necesita como referencia de script dentro de la etiqueta de cabecera.
Me doy cuenta de que esta es una vieja pregunta, pero este es otro ejemplo.
intenta esto:
Page.Header.Controls.Add(
new LiteralControl(
"<script>alert('Literal Added to <Head>.');</script>"
)
);
Si desea agregar la secuencia de comandos en un determinado índice de la <head>
puede utilizar
AddAt(index, new LiteralControl(...))
, donde el índice 0 es igual a la parte superior de la <head>
también , debe agregar runat="server"
en su etiqueta de cabecera, por ejemplo <head id="head1" runat="server">
- 1. GridView texto de cabecera en asp.net
- 2. ¿Cómo puedo evaluar el código de C# de forma dinámica?
- 3. Compilación de código de forma dinámica con C#
- 4. ASP.NET MVC - Autorización dinámica
- 5. ¿Cómo generar y ejecutar código nativo de forma dinámica?
- 6. Generación dinámica de formularios en ASP.NET
- 7. ¿Cómo obtener el brillo de la pantalla actual en el código de Android de forma dinámica?
- 8. Reubicación dinámica de la sección de código
- 9. Añadir elementos al menú de forma dinámica en la página web asp.net
- 10. ASP.Net Web API - Cabecera de autorización en blanco
- 11. Establecer la cadena de conexión de membresía de forma dinámica desde el código
- 12. Añadir la cláusula where de forma dinámica en Entity Framework
- 13. Implemente la interfaz de forma dinámica en Groovy usando invokeMethod
- 14. use params adicionales en la tienda de forma dinámica
- 15. Forma correcta de inicializar la matriz dinámica en C++
- 16. ¿Cómo cambiar la altura de la banda de forma dinámica?
- 17. OCaml inserta un elemento en la lista
- 18. Adición de controles de forma dinámica en el repetidor de ASP.NET
- 19. Forma gratuita Región web.config dinámica
- 20. Cómo crear las pestañas de la cinta de forma dinámica?
- 21. HTML5 jQuery cambiar la fuente de audio de forma dinámica
- 22. cómo cambiar la posición de los sprites de forma dinámica?
- 23. cómo cambiar la clase del fragmento de forma dinámica
- 24. Creación dinámica de páginas de contenido ASP.NET
- 25. Excepciones extrañas compiladas de forma dinámica expresión
- 26. servicio web ASP.Net: código que se ejecuta de forma asíncrona
- 27. Agregue un control a la cabecera de la página en ASP.NET
- 28. Obtener los idiomas disponibles de la aplicación de forma dinámica
- 29. Modificar el indicador de pestaña de forma dinámica en Android
- 30. ASP.NET MVC - Hoja de estilos dinámica
Las respuestas a continuación parecen basarse en que el encabezado tiene un atributo runat = "server", de lo contrario Page.Header es nulo. – user420667