0

我需要在 javascript 警报弹出窗口中一一显示所有字符串值。但我的代码不工作。我的代码看起来像:

<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

尝试

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

在行 btn.Attributes.Add("onclick", "javascript:test(str);"); str 是一个字符串,而不是一个变量。

这应该是

btn.Attributes.Add("onclick", "javascript:test("+str+");");
于 2013-03-28T07:11:27.510 回答
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 回答