Вы должны использовать eval
и поместить все выражение в кавычки.
eval "exec $id<>$file"
И делать это каждый раз, когда вы хотите использовать $id
.
У меня была недавно подобная проблема, и единственный способ решить ее состоял в том, чтобы использовать простые коды HTML для единственного ('
) и двойные кавычки ("
).
Исходный код был общей путаницей, конечно, но это работало.
Попытка
<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>
Без дополнительных кавычек вокруг параметра входной строки, функция 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>
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
Используйте, как описано выше.