三引号?如何在ASP.NET中定界数据绑定Javascript字符串参数?
时间:2020-03-05 18:37:39 来源:igfitidea点击:
如何在锚点" OnClick"事件中分隔Javascript数据绑定字符串参数?
- 我在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>
解决方案
回答
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代码。
源代码当然是一团糟,但确实有效。
尝试
<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>
回答
不带单引号或者双引号的变量传递给函数
<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")%> "); '
像上面一样使用。