2013-03-28 72 views
0

我需要在javascript alert彈出窗口中逐個顯示所有字符串值。但我的代碼不起作用。我的代碼如下所示:如何在javascript alert彈出窗口中顯示字符串數組值

<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);"); 

    } 

如何解決此問題?

+0

寫str變量陣列在javascript而不是在C#代碼,javascript中無法識別STR數組值。 – Neo 2013-03-28 07:01:47

+0

這是一些什麼類似的 - http://stackoverflow.com/questions/3464498/pass-c-sharp-asp-net-array-to-javascript-array – 2013-03-28 07:04:32

+1

沒有必要'javascript:'除非你客戶端VBScript在同一頁 – mplungjan 2013-03-28 07:05:09

回答

0

可以簡單地調用一個陣列上的join方法到數組中的元素合併:

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

當上述,是分隔符。

編輯:

看來你有一個.NET數組,你想編碼爲JavaScript。可以使用Json助手,如下所示:

btn.Attributes.Add("onclick", "test(" + System.Web.Helpers.Json.Encode(str) + ");return false;"); 
0

嘗試

btn.Attributes.Add("onclick", "test('"+String.join(",",str)+"'.split(','));"); 
0

在線路 btn.Attributes.Add( 「點擊」, 「的javascript:測試(STR);」); str是一個字符串,而不是一個變量。

這應改爲

btn.Attributes.Add("onclick", "javascript:test("+str+");"); 
+1

str是一個數組 – mplungjan 2013-03-28 07:12:05