请教Javascript高手!我浪费了很多分数,还是解决不了!没这么难吧??

来源:百度知道 编辑:UC知道 时间:2024/07/04 21:03:28
我在aspx文件(后台用的是C#语言)中插入了下面的JavaScript函数,

<script language="JavaScript" type="text/javascript">

function display()
{
var array=new Array();
var length=<%=musicArrayLength%>; //musicArrayLength是后台定义的
musicArray数组的长度
<%int i=0; %>

for( var i=0; i< length ; i++)
{
array[i]="<%=musicArray[i]%>";
<%i++;%>
alert( array[i] );

}

}
这个Javascript函数的原意是:将aspx.cs中定义的musicArray数组中的若干个元素用for循环拷贝到前台的array数组中, alert( array[i])用来显示每一个拷贝的数组元素值,可是,我发现拷贝到array数组中的值都是相同的!!为什么啊??还有: <% %>表示什么意思?? <%int i=0; %>中的int i=0;是在客户端还是服务器端执行??
后台的C# 代码很简单,定义并 填充了 musicArray 数组(ArrayList对象),用musicArrayLength表示数组长度,musicArrayLength 和 musicArray 都定义为 public。

其实你可以直接将数组写到客户端,C#中可以使用RegisterArrayDeclaration.
这是一段测试代码:

在CS的Page_Load中:
string[] musicArray = { "1.mp3", "2.mp3", "3.mp3", "4.mp3" };//测试数组

//把数组转成用“,”分隔的形式
string arrValue = "";
for (int i = 0; i < musicArray.Length; i++) {
arrValue = arrValue + "\"" + musicArray[i] + "\",";
}
arrValue = arrValue.Substring(0,arrValue.Length-1);

//添加javascript数组声明.
Page.ClientScript.RegisterArrayDeclaration("array", arrValue);

在ASPX中,将以下代码写到form的结束标志后:
<script language="JavaScript" type="text/javascript">
for (i = 0; i < array.length; i++) {
alert(array[i]);
}
</script>