2008-08-05 24 views
30

如何在定位OnClick事件中分隔Javascript数据绑定字符串参数?三重引号?如何在ASP.NET中分隔数据绑定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> 

回答

20

我最近遇到了类似的问题,解决这个问题的唯一方法就是使用简单的旧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> 
+0

Winna !!! 感谢Lubos。 HTML代码对它进行了排序(而且,这很杂乱,但它的工作原理)。 解决方案: onclick ='ToggleDisplay(" <%#DataBinder.Eval(Container.DataItem,“JOB_Code”)%> ");' – Dhaust 2010-02-08 03:50:23

0

没有围绕输入字符串参数额外的引号,Javascript函数认为我传递一个整数。

你可以做一些基本的字符串函数来强制JavaScript将其更改为一个字符串吗?像

value = value + "" 
0

尝试将额外的文本放入服务器端脚本块并连接。

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

编辑:我敢肯定,你可以在脚本块外使用双引号。

0

传递变量,而不单引号或双引号

<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> 
3
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); ' 

使用像上面的功能。

相关问题