Trojité uvozovky? Jak mohu vymezují databound Javascript parametr řetězce v ASP.NET?

hlasů
30

Jak mohu vymezují parametr databound řetězec JavaScript kotevní OnClickudálosti?

  • Mám kotevní tag v ovládacím prvku ASP.NET Repeater.
  • OnClickUdálost kotvy obsahuje volání funkce JavaScriptu.
  • Funkce Javascript vezme řetězec pro jeho vstupní parametr.
  • Parametr řetězec je naplněn hodnotou databound z Repeater.

Potřebuji „uvozovky“ pro Container.DataItem.
Potřebuji ‚apostrofy‘ pro OnClick.

A proč stále potřebují ještě jeden oddělovač (trojité uvozovky?) Pro parametr vstupní řetězec na volání funkce JavaScriptu.

Vzhledem k tomu nemohu použít znovu ‚jednoduché uvozovky‘, jak mohu zajistit funkci Javascript ví, že vstupní parametr je řetězec, a ne celé číslo?

Bez dodatečných uvozovek parametr vstupní řetězec, funkce Javascript si myslí, že jsem předáním celé číslo.

Cheers předem za jakékoliv znalosti můžete odevzdat.

Kotva:

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

a tady je 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>
Položena 05/08/2008 v 05:05
zdroj uživatelem
V jiných jazycích...                            


5 odpovědí

hlasů
20

Měl jsem v poslední době podobný problém, a jediný způsob, jak vyřešit to bylo použít obyčejný starý HTML kódy pro jednotlivé ( &#39;) a uvozovek ( &#34;).

Zdrojový kód byl celkový nepořádek samozřejmě, ale fungovalo to.

Snaž se

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

nebo

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Odpovězeno 05/08/2008 v 05:28
zdroj uživatelem

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

Použít jako výše.

Odpovězeno 28/04/2009 v 16:11
zdroj uživatelem

hlasů
0

Předávání proměnné fungovat bez jediného citátu nebo dvojité cenovou nabídku

<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>
Odpovězeno 12/03/2009 v 02:12
zdroj uživatelem

hlasů
0

Pokuste nadbytečný text uvnitř bloku skriptu na straně serveru a zřetězení.

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

Edit: Jsem si jistý, můžete prostě použít uvozovky vně bloku skriptu stejně.

Odpovězeno 05/08/2008 v 05:19
zdroj uživatelem

hlasů
0

Bez dodatečných uvozovek parametr vstupní řetězec, funkce Javascript si myslí, že jsem předáním celé číslo.

Můžete udělat nějaké primitivní funkce řetězec vynutit JavaScript do měnící se ji do řetězce? Jako

value = value + ""
Odpovězeno 05/08/2008 v 05:08
zdroj uživatelem

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