Atributos de Javascript del lado del servidor (aspx.cs). Agregue código para cambiar el texto de una etiqueta

StackOverflow https://stackoverflow.com/questions/844275

Pregunta

Estoy tratando de cambiar el texto de una etiqueta usando JavaScript del lado del servidor (onclick) y C # dentro del evento page_load. Por ejemplo, me gustaría escribir algo como lo siguiente:

Label1.Attributes.Add("onclick", "Label2.text='new caption'")

¿Alguien sabe el código correcto para esto? Además, a qué se refiere este tipo de código; ¿es solo JavaScript o JavaScript en C # o hay un nombre específico? Por último, ¿existe un libro o recurso en línea que enumere las opciones de control.attributes.add (& Quot; event & Quot ;, & Quot; syntax & Quot;) código para usar con C #?

¿Fue útil?

Solución

No hay Javascript del lado del servidor (a menos que cambie a una plataforma distinta de ASP.NET donde realmente usa Javascript como idioma del servidor). Lo que está haciendo es agregar un atributo a la etiqueta html, y el código se ejecutará completamente en el lado del cliente.

Primero, veamos cómo se hace en HTML sin el código del lado del servidor y los controles del lado del servidor:

<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>

Para utilizar los controles Label en su lugar, estableciendo el atributo onclick desde el código del lado del servidor, debe hacer esto:

Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");

Esto funcionará siempre que los controles no estén dentro de un contenedor de nombres. Si lo son, la identificación de los controles se antepone con el nombre del contenedor para mantenerlos únicos, por lo que debe usar la propiedad ClientID para averiguar cuál es su identificación final:

Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");

El <=> siempre contiene la identificación que puede usar para acceder al elemento desde Javascript, por lo que el último código siempre funciona independientemente de si el control está en un contenedor de nombres o no.

Para averiguar qué atributos puede usar, debe consultar la documentación HTML, por ejemplo, la documentación de Internet Explorer para elemento span . Al mirar la documentación para una característica específica, observe la Información de estándares, ya que eso le dirá si funciona en cualquier navegador o solo en Internet Explorer.

Otros consejos

El código anterior agrega JavaScript a un control de servidor representado en el cliente. Eche un vistazo a este artículo de MSDN: Uso de JavaScript junto con ASP.NET para más información.

IIRC, necesitará hacer referencia a Label2 por su ClientID y deberá escribir algo de JavaScript para cambiar el valor de texto de la etiqueta (creo que las etiquetas ASP.NET se representan como <span> etiquetas).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top