Citations Triple? Comment est-ce que je délimite un paramètre de chaîne Javascript de databound dans ASP.NET?

Comment puis-je délimiter un paramètre de chaîne de données JavaScript dans un événement anchor OnClick ?

  • J'ai une balise d'ancrage dans un contrôle de répéteur ASP.NET.
  • L'événement OnClick de l'ancre contient un appel à une fonction Javascript.
  • La fonction Javascript prend une chaîne pour son paramètre d'entrée.
  • Le paramètre de chaîne est rempli avec une valeur de base de données provenant du répéteur.

J'ai besoin des "guillemets doubles" pour le Container.DataItem .
J'ai besoin des 'guillemets simples' pour le OnClick .

Et j'ai encore besoin de un autre délimiteur (guillemets triples?) Pour le paramètre de chaîne d'entrée de l'appel de fonction Javascript.

Comme je ne peux plus utiliser de guillemets simples, comment puis-je m'assurer que la fonction Javascript sait que le paramètre d'entrée est une chaîne et non un nombre entier?

Sans les guillemets autour du paramètre de chaîne d'entrée, la fonction Javascript pense que je passe un nombre entier.

Bravo à l'avance pour toute connaissance que vous pouvez laisser tomber.

L'ancre:

Show/Hide    

et voici le Javascript:

<script language="JavaScript" type="text/javascript">
/* Shows/Hides the Jobs Div */
function ToggleDisplay(jobCode)
{
    /* Each div has its ID set dynamically ('d' plus the JobCode) */
    var elem = document.getElementById('d' + jobCode);

    if (elem) 
    {
        if (elem.style.display != 'block') 
        {
            elem.style.display = 'block';
            elem.style.visibility = 'visible';
        } 
        else
        {
            elem.style.display = 'none';
            elem.style.visibility = 'hidden';
        }
    }
}
</script>
0

3 Réponses

Essayez de placer le texte supplémentaire dans le bloc de script côté serveur et de le concaténer.

onclick='<%# "ToggleDisplay(""" &  DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'

Edit: Je suis sûr que vous pourriez juste utiliser des guillemets doubles en dehors du bloc de script.

0
ajouté

Sans les guillemets autour du paramètre de chaîne d'entrée, la fonction Javascript pense que je passe un nombre entier.

Pouvez-vous faire une fonction de chaîne rudimentaire pour forcer JavaScript à le changer en chaîne? Comme

value = value + ""
0
ajouté

I had recently similar problem and the only way to solve it was to use plain old HTML codes fou single (') and double quotes (").

Le code source était le désoudre total bien sûr mais cela a fonctionné.

Essayer

Show/Hide

ou

Show/Hide
0
ajouté
Winna !!! Merci Lubos. Les codes HTML l'ont trié (et oui, c'était salissant, mais ça marche). Solution: onclick = 'ToggleDisplay ("<% # DataBinder.Eval (Container.DataItem," JOB_Code ")%>");'
ajouté l'auteur Dhaust, source
"est une double citation." est une citation simple
ajouté l'auteur emeh, source