Citations Triple? Comment puis-je délimiter un databound Javascript paramètre de chaîne dans ASP.NET?

voix
30

Comment puis-je Délimiter un paramètre de chaîne databound Javascript dans un point d' ancrage OnClickévénement?

  • J'ai une balise d'ancrage dans un contrôle répéteur ASP.NET.
  • L' OnClickévénement 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 databound du répéteur.

J'ai besoin des « guillemets » pour le Container.DataItem.
J'ai besoin des guillemets simples « » pour la OnClick.

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

Puisque je ne peux pas utiliser de nouveau « guillemets simples », comment puis-je assurer la fonction Javascript connaît le paramètre d'entrée est une chaîne et non un entier?

Sans les guillemets supplémentaires autour du paramètre de chaîne d'entrée, la fonction Javascript pense que je suis dans un passage entier.

Des cris de joie à l'avance pour tout savoir vous pouvez déposer.

L'ancre:

<a id=aShowHide onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, JobCode) %>);' >Show/Hide</a>    

et est le Javascript ici:

<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>
Créé 05/08/2008 à 05:05
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
20

J'ai récemment eu le même problème et la seule façon de le résoudre est d'utiliser des codes vieux HTML brut pour un seul ( &#39;) et des guillemets doubles ( &#34;).

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

Essayer

<a id="aShowHide" onclick='ToggleDisplay(&#34;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#34;);'>Show/Hide</a>

ou

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Créé 05/08/2008 à 05:28
source utilisateur

voix
3
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

Utilisez comme ci-dessus.

Créé 28/04/2009 à 16:11
source utilisateur

voix
0

Passant variable fonction sans guillemet simple ou double citation

<html>
    <head>
    </head>
    <body>
        <script language="javascript">
        function hello(id, bu)
        {
            alert(id+ bu);
        }
        </script>
        <a href ="javascript:
            var x = &#34;12&#34;;
            var y = &#34;fmo&#34;;
            hello(x,y)">test</a>
    </body>
</html>
Créé 12/03/2009 à 02:12
source utilisateur

voix
0

Essayez de mettre le texte supplémentaire à l'intérieur du bloc de script côté serveur et concaténer.

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

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

Créé 05/08/2008 à 05:19
source utilisateur

voix
0

Sans les guillemets supplémentaires autour du paramètre de chaîne d'entrée, la fonction Javascript pense que je suis dans un passage entier.

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

value = value + ""
Créé 05/08/2008 à 05:08
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more