Triple Quotes? Hvordan kan jeg avgrense en databound Javascript strengparameter i ASP.NET du?

stemmer
31

Hvordan kan jeg avgrense en Javascript databound strengparameter i et anker OnClickarrangement?

  • Jeg har et anker tag i en ASP.NET Repeater kontroll.
  • Den OnClicktilfelle ankeret inneholder et anrop til en Javascript-funksjon.
  • Javascript-funksjonen tar en streng for dens inngangsparameter.
  • Strengen parameter er befolket med en databound verdi fra gjentager.

Jeg trenger de anførselstegn for Container.DataItem.
Jeg trenger de 'enkle anførselstegn' for den OnClick.

Og jeg trenger fortsatt en mer delimiter (triple hermetegn?) For innspill strengparameteren av Javascript funksjon samtale.

Siden jeg kan ikke bruke 'enkle anførselstegn' igjen, hvordan sikre jeg vet Javascript-funksjonen vet inndataparameteren er en streng og ikke et heltall?

Uten de ekstra anførselstegn rundt inngangsstrengparameteren, mener Javascript-funksjonen jeg har bestått i et heltall.

Ankeret:

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

og her er 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>
Publisert på 05/08/2008 klokken 04:05
kilden bruker
På andre språk...                            


5 svar

stemmer
21

Jeg hadde nylig lignende problem, og den eneste måten å løse det var å bruke vanlig gamle html-koder for enkle ( &#39;) og doble anførselstegn ( &#34;).

Kildekoden var totalt rot selvfølgelig, men det fungerte.

Prøve

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

eller

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a>
Svarte 05/08/2008 kl. 04:28
kilden bruker

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

Bruk som ovenfor.

Svarte 28/04/2009 kl. 15:11
kilden bruker

stemmer
1

Uten de ekstra anførselstegn rundt inngangsstrengparameteren, mener Javascript-funksjonen jeg har bestått i et heltall.

Kan du gjøre noe rudimentær streng funksjonen for å tvinge Javascript til å endre den til en streng? Som

value = value + ""
Svarte 05/08/2008 kl. 04:08
kilden bruker

stemmer
0

Passerer variabel å fungere uten enkelt sitat eller dobbel sitat

<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>
Svarte 12/03/2009 kl. 01:12
kilden bruker

stemmer
0

Prøv å sette den ekstra teksten i server-side skriptblokken og sette sammen.

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

Edit: Jeg er ganske sikker på at du bare kunne bruke anførselstegn utenfor skriptblokken også.

Svarte 05/08/2008 kl. 04:19
kilden bruker

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