Potrójne Cytaty? Jak mogę się z danymi Javascript wytyczają ciąg parametru w ASP.NET?

głosy
30

Jak mogę oddzielić parametr z danymi ciąg JavaScript na kotwicy OnClickwydarzenia?

  • Mam znacznik zakotwiczenia w kontrolce ASP.NET Repeater.
  • OnClickWydarzeniem kotwicy zawiera wywołanie funkcji JavaScript.
  • Funkcja JavaScript pobiera ciąg dla jego parametru wejściowego.
  • Parametr ciąg jest wypełniona wartości z danymi z Repeater.

Potrzebuję „cudzysłów” dla Container.DataItem.
Potrzebuję „apostrofów” dla OnClick.

I nadal potrzebują jeszcze jednego ogranicznika (potrójne cytaty?), Dla parametru ciąg wejściowy wywołania funkcji JavaScript.

Ponieważ nie mogę użyć „pojedyncze cudzysłowy” znowu, jak mogę zapewnić funkcji JavaScript wie parametr wejściowy jest ciągiem znaków, a nie liczbą całkowitą?

Bez dodatkowych cytatów wokół parametru ciąg wejściowy, funkcja JavaScript myśli, że przechodząc w całkowitej.

Zdrówko z wyprzedzeniem o jakiejkolwiek wiedzy można upuścić.

Kotwica:

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

i tutaj jest 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>
Utwórz 05/08/2008 o 05:05
źródło użytkownik
W innych językach...                            


5 odpowiedzi

głosy
20

Miałem niedawno podobny problem, a jedynym sposobem na rozwiązanie było użyć zwykły stary kody HTML dla pojedynczych ( &#39;) i cudzysłowy ( &#34;).

Kod źródłowy był totalny bałagan oczywiście, ale to działało.

Próbować

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

lub

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Odpowiedział 05/08/2008 o 05:28
źródło użytkownik

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

Użyj jak powyżej.

Odpowiedział 28/04/2009 o 16:11
źródło użytkownik

głosy
0

Przechodząc zmienną funkcjonować bez pojedynczym lub podwójnym cudzysłowem cytatem

<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>
Odpowiedział 12/03/2009 o 02:12
źródło użytkownik

głosy
0

Spróbuj umieścić dodatkowy tekst wewnątrz bloku skryptu po stronie serwera, a złączenie.

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

Edit: Jestem całkiem pewien, że można po prostu użyć cudzysłowia zewnątrz bloku skryptu, jak również.

Odpowiedział 05/08/2008 o 05:19
źródło użytkownik

głosy
0

Bez dodatkowych cytatów wokół parametru ciąg wejściowy, funkcja JavaScript myśli, że przechodząc w całkowitej.

Można zrobić jakąś podstawową funkcję ciąg JavaScript, aby zmusić go do zmieniających się w ciągu? Lubić

value = value + ""
Odpowiedział 05/08/2008 o 05:08
źródło użytkownik

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