2010-02-09 8 views
0

J'ai un contrôle littéral sur la page (avec quelques données dessus). Je veux y accéder en javascript et je veux y mettre du texte. S'il vous plaît dites-moi comment puis-je accéder au contrôle littéral en javascript. (Je suis en utilisant asp.net)Comment accéder au contrôle littéral en javascript

Mon code en javascript (mais ne fonctionne pas):

lths = document.getElementById("<%= lblhs.ClientID %>"); 
lths.innerHTML = 'this is text line" 

Répondre

5

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 jquery's selectors. Votre code ne fonctionne pas car le contrôle Literal ne s'affiche pas en tant qu'élément, mais uniquement en texte statique. Vous pouvez placer un intervalle autour de celui-ci ou utiliser un contrôle Label, qui vous permet de l'afficher.

+1

document.getElementById ('<% = myControl.ClientId%>') (ne fonctionne pas) –

+0

J'utilise framework 2.0 (VS2005) –

+0

Modification d'une étiquette devrait faire l'affaire. –

0

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

3

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 se traduit par une balise html span par défaut. Comme ça, vous pouvez le sélectionner du 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'); 
1

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" 

Vous ne savez pas s'il s'agit d'une erreur de frappe ici, ou si vous l'avez copiée à partir de votre code. Vous pouvez utiliser " ou ' mais pas les deux pour entourer une chaîne. En outre, vous devriez utiliser des points-virgules de terminaison comme meilleure pratique (bien que ce ne soit pas obligatoire).

lths.innerHTML = 'this is text line';