0

JavaScriptアラートポップアップですべての文字列値を1つずつ表示する必要があります。しかし、私のコードは機能していません。私のコードは次のようになります:

<script type="text/javascript">
    function test(x)
    {        
        for(var i = 0; i<x.length; i++)
        {
        alert(x[i]);    
        }        

    }

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   <asp:Button ID="btn" runat="server" Text="Submit" onclick="btn_Click" /> 
    </div>

C# code:


 protected void btn_Click(object sender, EventArgs e)
    {
       string [] str=new string[5];
       str[0] = "string1";
       str[1] = "string2";
       str[2] = "string3";
       str[3] = "string4";
       str[4] = "string5";
       btn.Attributes.Add("onclick", "javascript:test(str);");

    }

この問題を解決するには?

4

3 に答える 3

0

配列でメソッドを呼び出すだけjoinで、配列内の要素をマージできます。

function test(x)
{        
    alert(x.join(","));  
}

の上,は区切り文字です。

編集:

JavaScript にエンコードしたい .NET 配列があるようです。Json以下に示すように、ヘルパーを使用できます。

btn.Attributes.Add("onclick", "test(" + System.Web.Helpers.Json.Encode(str) + ");return false;");
于 2013-03-28T07:02:47.777 に答える
0

行 btn.Attributes.Add("onclick", "javascript:test(str);"); str は変数ではなく文字列です。

これは代わりに

btn.Attributes.Add("onclick", "javascript:test("+str+");");
于 2013-03-28T07:11:27.510 に答える
0

試す

btn.Attributes.Add("onclick", "test('"+String.join(",",str)+"'.split(','));");
于 2013-03-28T07:07:56.690 に答える