Question

J'ai un contrôle littéral à la page (avec quelques données sur elle). Je veux y accéder en javascript et que vous voulez mettre un texte là-dessus. s'il vous plaît me dire comment puis-je accéder à un contrôle littéral javascript. (Je suis en utilisant asp.net)

Mon code en javascript (mais ne fonctionne pas):

 lths = document.getElementById("<%= lblhs.ClientID %>");
 lths.innerHTML = 'this is text line"
Était-ce utile?

La solution

Vous pouvez le trouver en utilisant document.getElementById('<%= myControl.ClientID %>') ou si vous utilisez .NET 4.0, vous pouvez définir directement le champ id être tiré par javascript. Vous pouvez également utiliser sélecteurs de jquery . Votre code ne fonctionne pas parce que le contrôle Literal ne rend pas comme un élément, tout texte statique. Vous pouvez placer une portée autour, ou utilisez un contrôle d'étiquettes, ce qui rend une durée pour vous.

Autres conseils

Je ne pense pas que vous pouvez accéder à un contrôle littéral de votre code client JavaScript car un contrôle littéral rend juste valeur est pure, sans aucune balise autour. Donc, vous n'avez pas vraiment un élément que vous pourriez obtenir par id.

Ce que vous pouvez à changer est le contrôle littéral à un contrôle de l'étiquette. Cela rend comme une balise span html par défaut. Comme vous pouvez le sélectionner sur le côté client.

Une autre option serait d'écrire une période ou balise div dans votre contrôle littéral du côté serveur comme ceci:

myLiteral.Text = "<div id=\"myDiv\">Some Text here</div>"

sur le client, vous pouvez sélectionner le elemnt en utilisant:

var myDiv = document.getElementById('myDiv');

Juste pour écarter l'évidence (puisque personne ne dit autre le), ceci est une erreur de syntaxe dans JS:

lths.innerHTML = 'this is text line"

Je ne sais pas si cela était une erreur de frappe ici, ou si vous l'avez copié à partir de votre code. Vous pouvez utiliser " ou ' mais pas les deux pour entourer une chaîne. En outre, vous devez utiliser les meilleures pratiques se terminant comme des points-virgules (bien qu'il n'est pas nécessaire).

lths.innerHTML = 'this is text line';

La technique de <%= myControl.ClientId %> ne fonctionne pas lorsque vous utilisez les pages maîtres. ça pourrait être le cas. Qu'est-ce que vous pouvez faire est: Prenez un champ caché. Enregistrer l'ID de l'étiquette dans le champ caché. Accédez à l'attribut de valeur pour obtenir l'ID et puis utilisez document.getElementByID('HiddenField.Value') pour obtenir le contrôle.

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