如题:javascript如何循环调用C#后台定义的数组?

解决方案 »

  1.   

    js是客户端的怎么能调用后台代码呢,
    js只能操作页面上的obj;
      

  2.   

    把数据取到前台来做循环,
    <script language="javascript">
    var arraya = new Array();
    <%
    if (dt != null)
    for (int i=0; i<dt.Rows.Count; i++)
    {
    %>
      arraya[<%=i%>] = new Array("<%=dt.Rows[i]["UserName"]%>","<%=dt.Rows[i]["UserPass"]%>");
    <%
    }
    </script>
    这个的这个dt在后台要定义成public的
      

  3.   

    没法直接用,可以在网页启动是载入
    以下是VS2003的代码.
    private void Page_Load(object sender, System.EventArgs e)
    {
      string js="<script language='javascript'>";
        js=js+"var ary;";
        js=js+"ary[0]="+ary[0];
        js=js+"ary[1]="+ary[1];
        js=js+"";
        js=js+"";
        js=js+"";
       js=js+"</script>"
                                             this.RegisterStartupScript("Ary", JS);
    }
      

  4.   

    js调用c#定义的数组是不可能的。
    到是可以在c#中写好js格式的数组,传过来
    用ajax轻松实现
      

  5.   

    还是用ajax吧,这才是根本的解决之道
    js发出ajax请求,服务端接收到请求,把数组处理为json字符串,发送到客户端,在ajax回调函数中能获取到该字符串,eval解析了就是数组了嵌入后台代码不是很好的做法,当然不会ajax又真着急用的话,写一个string的成员变量,在load事件中赋值,同样可以把数组写成一个json字符串,js中写var arr=eval("<%=变量名%>");就行了