Тройные кавычки?Как мне разграничить строковый параметр Javascript с привязкой к базе данных в ASP.NET?
-
08-06-2019 - |
Вопрос
Как мне разграничить строковый параметр, привязанный к данным Javascript, в привязке OnClick
событие?
- У меня есть тег привязки в элементе управления ASP.NET Повторителем.
- Тот Самый
OnClick
событие привязки содержит вызов функции Javascript. - Функция Javascript принимает строку в качестве своего входного параметра.
- Строковый параметр заполняется привязанным к данным значением из ретранслятора.
Мне нужны "двойные кавычки" для Container.DataItem
.
Мне нужны "одинарные кавычки" для OnClick
.
И мне все еще нужно еще один разделитель (тройные кавычки?) для параметра входной строки вызова функции Javascript.
Поскольку я не могу снова использовать "одинарные кавычки", как мне убедиться, что функция Javascript знает, что входной параметр является строкой, а не целым числом?
Без дополнительных кавычек вокруг параметра input string функция 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>
Решение
Недавно у меня была похожая проблема, и единственным способом ее решить было использовать простые старые HTML-коды для single ('
) и двойные кавычки ("
).
Исходный код, конечно, был в полном беспорядке, но он работал.
Попробуй
<a id="aShowHide" onclick='ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode") %>");'>Show/Hide</a>
или
<a id="aShowHide" onclick='ToggleDisplay('<%# DataBinder.Eval(Container.DataItem, "JobCode") %>');'>Show/Hide</a>
Другие советы
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
Используйте, как описано выше.
Без дополнительных кавычек вокруг параметра input string функция Javascript думает, что я передаю целое число.
Можете ли вы выполнить какую-нибудь элементарную строковую функцию, чтобы заставить JavaScript преобразовать ее в строку?Нравится
value = value + ""
Попробуйте поместить дополнительный текст внутри блока скрипта на стороне сервера и выполнить конкатенацию.
onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
Редактировать:Я почти уверен, что вы могли бы просто использовать двойные кавычки и вне блока сценария.
Передача переменной в функцию без одинарных или двойных кавычек
<html>
<head>
</head>
<body>
<script language="javascript">
function hello(id, bu)
{
alert(id+ bu);
}
</script>
<a href ="javascript:
var x = "12";
var y = "fmo";
hello(x,y)">test</a>
</body>
</html>