Attributs Javascript (aspx.cs) côté serveur. Ajouter du code pour modifier le texte d'une étiquette

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

Question

J'essaie de modifier le texte d'une étiquette à l'aide de JavaScript côté serveur (onclick) et de C # dans l'événement page_load. Par exemple, j'aimerais écrire quelque chose comme ceci:

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

Est-ce que quelqu'un connaît le code correct pour cela? Aussi, à quoi ce type de code est-il fait référence? s'agit-il simplement de JavaScript ou de JavaScript en C # ou existe-t-il un nom spécifique? Enfin, existe-t-il un livre ou une ressource en ligne répertoriant les choix de control.attributes.add (& "Événement &", & "Syntaxe &") À utiliser avec C #?

Était-ce utile?

La solution

Il n’existe pas de Javascript côté serveur (sauf si vous passez sur une plateforme autre que ASP.NET sur laquelle vous utilisez réellement Javascript comme langage serveur). Ce que vous faites est d’ajouter un attribut à la balise html et le code sera entièrement exécuté côté client.

Tout d'abord, voyons comment cela se passe en HTML sans le code côté serveur ni les contrôles côté serveur:

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

Pour utiliser à la place les Label contrôles, en définissant l'attribut onclick à partir du code côté serveur, procédez comme suit:

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

Ceci fonctionnera tant que les contrôles ne sont pas dans un conteneur de nommage. Si tel est le cas, les identificateurs des contrôles sont précédés du nom du conteneur afin de les conserver uniques. Vous devez donc utiliser la propriété ClientID pour connaître leur identificateur final:

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

Le <=> contient toujours l'id que vous pouvez utiliser pour accéder à l'élément à partir de Javascript. Le dernier code fonctionne donc, que le contrôle se trouve ou non dans un conteneur de nommage.

Pour connaître les attributs que vous pouvez utiliser, consultez la documentation HTML, par exemple la documentation Internet Explorer pour élément span . Lorsque vous consultez la documentation d'une fonctionnalité spécifique, notez les informations sur les normes, car elles vous indiqueront si cela fonctionne dans n'importe quel navigateur ou uniquement dans Internet Explorer.

Autres conseils

Le code ci-dessus ajoute JavaScript à un contrôle serveur rendu sur le client. Consultez cet article MSDN - Utilisation de JavaScript avec ASP.NET pour plus d'informations.

IIRC, vous devrez référencer Label2 par son ID client et devez écrire du code JavaScript pour modifier la valeur textuelle de l'étiquette (je pense que les étiquettes ASP.NET sont rendues sous forme de <span> balises).

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