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

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

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

Мне нужны "двойные кавычки" для Container.DataItem.
Мне нужны "одинарные кавычки" для OnClick.

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

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

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

Якорь:

<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>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
43
0
20 656
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Without the extra quotes around the input string parameter, the Javascript function thinks I'm passing in an integer.

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

value = value + ""

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

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

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

Ответ принят как подходящий

У меня недавно была аналогичная проблема, и единственный способ ее решить - использовать простые старые 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>

Винна !!! Спасибо Любошу. HTML-коды отсортировали его (и да, это было беспорядочно, но это работает). Решение: onclick = 'ToggleDisplay ("");'

Dhaust 08.02.2010 06:50

"- двойная кавычка." - одинарная кавычка

emeh 11.01.2011 14:07

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

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

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

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

Другие вопросы по теме