Triple-Quotes? Wie begrenzen wir eine Databound Javascript String-Parameter in ASP.NET?

stimmen
30

Wie begrenzen ich einen Javascript Databound - String - Parameter in einem Anker - OnClickEreignisse?

  • Ich habe einen Anker-Tag in einem ASP.NET-Repeater-Steuerelement.
  • Das OnClickEreignis des Ankers enthält einen Aufruf an eine Javascript - Funktion.
  • Die Javascript-Funktion nimmt einen String für die Eingabe-Parameter.
  • Der String-Parameter wird mit einem Databound-Wert aus dem Repeater bevölkert.

Ich brauche die „doppelte Anführungszeichen“ für die Container.DataItem.
Ich brauche die ‚einfache Anführungszeichen‘ für die OnClick.

Und ich brauche noch ein weiteres Trennzeichen (triple Anführungszeichen?) Für die Eingabe - String - Parameter des Funktionsaufrufs Javascript.

Da ich nicht wieder ‚Apostrophe‘ verwenden kann, wie stelle ich sicher, die Javascript-Funktion kennt den Eingabeparameter ein String ist und nicht eine ganze Zahl?

Ohne die zusätzlichen Anführungszeichen um den Eingabe-String-Parameter, denkt, dass die Javascript-Funktion Ich bin in einer ganzen Zahl übergeben.

Jubel im Voraus für jedes Wissen können Ihnen fallen.

Der Anker:

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

und hier ist das 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>
Veröffentlicht am 05/08/2008 um 05:05
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
20

Vor kurzem hatte ich ähnliches Problem und der einzige Weg , es zu lösen war das gute alte HTML - Codes zu verwenden , um einzelne ( &#39;) und doppelte Anführungszeichen ( &#34;).

Der Quellcode war totales Durcheinander natürlich, aber es funktionierte.

Versuchen

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

oder

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Beantwortet am 05/08/2008 um 05:28
quelle vom benutzer

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

Verwenden Sie wie oben.

Beantwortet am 28/04/2009 um 16:11
quelle vom benutzer

stimmen
0

Passing Variable ohne Apostroph oder Anführungszeichen funktionieren

<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>
Beantwortet am 12/03/2009 um 02:12
quelle vom benutzer

stimmen
0

Versuchen Sie, den zusätzlichen Text innerhalb des serverseitigen Skriptblock setzen und verketten.

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

Edit: Ich bin mir ziemlich sicher, dass Sie genauso gut doppelte Anführungszeichen außerhalb der Skriptblock verwenden könnte.

Beantwortet am 05/08/2008 um 05:19
quelle vom benutzer

stimmen
0

Ohne die zusätzlichen Anführungszeichen um den Eingabe-String-Parameter, denkt, dass die Javascript-Funktion Ich bin in einer ganzen Zahl übergeben.

Können Sie einige rudimentäre String-Funktion tun JavaScript zu zwingen, es in einen String zu ändern? Mögen

value = value + ""
Beantwortet am 05/08/2008 um 05:08
quelle vom benutzer

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