三重行情?如何在ASP.NET中分隔数据绑定Javascript字符串参数?

nodio 发布于 2018-02-08 anchor 最后更新 2018-02-08 01:07 626 浏览

如何在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>
    
已邀请:

uet

赞同来自:

Without the extra quotes around the input string parameter, the Javascript function thinks I'm passing in an integer.
你可以做一些基本的字符串函数来强制JavaScript将其更改为一个字符串?喜欢
value = value + ""

nquae

赞同来自:

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

onclick='<%# "ToggleDisplay(""" &  DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
编辑:我敢肯定,你可以在脚本块外使用双引号。

zamet

赞同来自:

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

funde

赞同来自:

将变量传递给没有单引号或双引号的函数

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

funde

赞同来自:

onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
像上面一样使用。