代码之家  ›  专栏  ›  技术社区  ›  Dhaust

三引号?如何在ASP.NET中分隔数据绑定的javascript字符串参数?

  •  34
  • Dhaust  · 技术社区  · 16 年前

    如何在锚中分隔javascript数据绑定字符串参数 OnClick 事件?

    • 我在ASP.NET转发器控件中有一个定位标记。
    • 这个 点击 锚的事件包含对javascript函数的调用。
    • javascript函数的输入参数是一个字符串。
    • 字符串参数由来自转发器的数据绑定值填充。

    我需要“双引号” Container.DataItem .
    我需要“单引号” 点击 .

    我仍然需要 另一个分隔符 (三引号?)对于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 回复  |  直到 16 年前
        1
  •  25
  •   joshcartme    13 年前

    我最近也遇到过类似的问题,唯一的解决方法是使用简单的旧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>
    
        2
  •  5
  •   Bill the Lizard Alexis MP    14 年前
    onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
    

    如上所述。

        3
  •  2
  •   Grant    16 年前

    如果输入字符串参数周围没有多余的引号,javascript函数会认为我正在传入一个整数。

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

    value = value + ""
    
        4
  •  0
  •   Shawn    16 年前

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

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

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

        5
  •  0
  •   Dez    6 年前

    将变量传递给不带单引号或双引号的函数

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