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

时间:2008-08-05 04:05:53

标签: asp.net javascript anchor quotes

如何在锚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>

5 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:5)

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

使用如上所述。

答案 2 :(得分:2)

  

如果没有输入字符串参数的额外引号,Javascript函数会认为我传入的是整数。

你能做一些基本的字符串函数来强制JavaScript将它改成字符串吗?喜欢

value = value + ""

答案 3 :(得分:0)

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

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

编辑:我很确定你也可以在脚本块之外使用双引号。

答案 4 :(得分: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>