47

OnClickアンカーイベントでJavascriptデータバインド文字列パラメータを区切るにはどうすればよいですか?

  • ASP.NETRepeaterコントロールにアンカータグがあります。
  • アンカーのOnClickイベントには、Javascript関数の呼び出しが含まれています。
  • Javascript関数は、入力パラメーターとして文字列を取ります。
  • 文字列パラメーターには、Repeaterからのデータバインド値が入力されます。

の「二重引用符」が必要Container.DataItemです。
の「一重引用符」が必要OnClickです。

そして、Javascript関数呼び出しの入力文字列パラメーター用にもう1つの区切り文字(三重引用符?)が必要です。

'一重引用符'を再度使用することはできないので、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>
4

5 に答える 5

32

&#39;私は最近同様の問題を抱えていましたが、それを解決する唯一の方法は、一重引用符()と二重引用符( )にプレーンな古いHTMLコードを使用することでした&#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>
于 2008-08-05T04:28:21.983 に答える
6
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

上記のように使用します。

于 2009-04-28T15:11:16.407 に答える
3

入力文字列パラメーターを引用符で囲む必要がない場合、Javascript関数は整数を渡していると見なします。

JavaScriptに文字列への変更を強制するための基本的な文字列関数を実行できますか?好き

value = value + ""
于 2008-08-05T04:08:18.983 に答える
1

サーバー側のスクリプトブロック内に余分なテキストを入れて連結してみてください。

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

編集:スクリプトブロックの外側でも二重引用符を使用できると確信しています。

于 2008-08-05T04:19:36.853 に答える
1

一重引用符または二重引用符なしで関数に変数を渡す

<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>
于 2009-03-12T01:12:16.847 に答える