Сведения о вопросе

Solllo

16:03, 1st July, 2020

Теги

asp.net   javascript   anchor   quotes    

Тройные Кавычки? Как я могу разграничить строковый параметр databound Javascript в ASP.NET?

Просмотров: 602   Ответов: 5

Как я могу разграничить строковый параметр Javascript с привязкой к данным в событии anchor OnClick ?

  • У меня есть тег anchor в элементе управления ретранслятором ASP.NET.
  • Событие OnClick anchor содержит вызов функции Javascript.
  • Функция Javascript принимает строку в качестве входного параметра.
  • Строковый параметр заполняется привязанным к данным значением из ретранслятора.

Мне нужен "double quotes" для Container.DataItem .
Мне нужен 'single quotes' для OnClick .

А мне еще нужен один разделитель (тройные кавычки?) для входного строкового параметра вызова функции Javascript.

Поскольку я не могу использовать 'single quotes' снова, как я могу гарантировать, что функция Javascript знает, что входной параметр является строкой, а не целым числом?

Без дополнительных кавычек вокруг входного строкового параметра функция Javascript думает, что я передаю целое число.

В anchor:

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

а вот и 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>



  Сведения об ответе

park

18:03, 1st July, 2020

Недавно у меня была аналогичная проблема, и единственный способ ее решить-использовать простые старые коды HTML для одинарных ( &#39; ) и двойных кавычек ( &#34; ).

Исходный код, конечно, был полным беспорядком, но он работал.

Попробуй

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

или

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


  Сведения об ответе

nYU

18:03, 1st July, 2020

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

Используйте как описано выше.


  Сведения об ответе

nYU

18:03, 1st July, 2020

Без дополнительных кавычек вокруг входного строкового параметра функция Javascript думает, что я передаю целое число.

Можете ли вы сделать какую-нибудь элементарную строковую функцию, чтобы заставить JavaScript изменить ее в строку? Нравится

value = value + ""


  Сведения об ответе

lats

18:03, 1st July, 2020

Передача переменной в функцию без одинарной или двойной кавычки

<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>


  Сведения об ответе

appple

18:03, 1st July, 2020

Попробуйте поместить дополнительный текст в блок сценария на стороне сервера и объединить его.

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

Edit: я почти уверен, что вы также можете использовать двойные кавычки вне блока скрипта.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться