大牛们,最近遇到了这个问题。
aspx文件要用到aspx.cs文件中的数组。(数组是public的)在网上查了这样的一个结果
<script language="javascript">
var my_array = new Array(100);//客户端变量my_array
<%
//服务器端循环输出赋值语句 
for (int i=0;i<100;i++)
Response.Write("my_array[" + i + "]=" + s[i] + ";");//s[i]是aspx.cs中的变量
%>
</script>我试了试,如果把for循环的i<100写死,这样是没有问题的,但是如果这个数组的长度(我需要的有效长度)是不定的,也就是说不是100,而是个变量的话,就不对了。我如下写了写:
<script language="javascript">
var maxsize=<%=max%>;//max为aspx.cs中记录s[i]的有效长度的变量
var my_array = new Array(100);//客户端变量my_array
<%
//服务器端循环输出赋值语句 
for (int i=0;i<maxsize;i++)
Response.Write("my_array[" + i + "]=" + s[i] + ";");
%>
</script>
这是后会报maxsize未定义的错。
我想请问大牛们,我这个问题怎么解决?
多谢!asp.netjavascript

解决方案 »

  1.   

    方法太多了。。
    第一种:<script type="text/javascript" src="scriptData.ashx"></script>
        <script type="text/javascript">
            console.log(my_array[0]);
            console.log(my_array[9]);
        </script>using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;namespace webForm
    {
        /// <summary>
        /// scriptData 的摘要说明
        /// </summary>
        public class scriptData : IHttpHandler
        {        public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/x-javascript";
                int i = 10;
                System.Text.StringBuilder script = new System.Text.StringBuilder("var my_array = new Array(");
                script.AppendFormat("{0});",i);
                for (int k = 0; k < i; k++)
                    script.AppendFormat("my_array[{0}]={0};",k);
                context.Response.Write(script.ToString());
            }        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
      

  2.   

    第二种:<script type="text/javascript">        var total=<%=this.Total%>;
            var my_array = new Array(total);
            for(var i=0;i<total;i++)
                my_array[i]=i;        console.log(my_array[0]);
            console.log(my_array[9]);    </script> public partial class index : System.Web.UI.Page
        {
            public int Total { get; set; }        protected void Page_Load(object sender, EventArgs e)
            {
                this.Total = 10;
            }
                      }
      

  3.   


        private void BuildDw()
        {
            string sql = "Select * From Sclass where isuse=1 order by bclassid ,id";
            DataSet ds = db.GetDataSet(sql);
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language = \"JavaScript\">\r");
            sb.Append("var onecount;\r");            
            int count = 0;
            sb.Append("subcat = new Array();\r");
            for (int i = 0; i < ds.Tables[0].Rows.Count; ++i)
            {
                sb.Append("subcat[").Append(count.ToString()).Append("] = new Array(\"").Append(ds.Tables[0].Rows[i]["name"].ToString()).Append("\",\"");
                sb.Append(ds.Tables[0].Rows[i]["bclassid"].ToString()).Append("\",\"").Append(ds.Tables[0].Rows[i]["id"].ToString()).Append("\");\r");
                ++count;
            }        sb.Append("function changelocation(locationid){\r");
            sb.Append("document.getElementById(\"").Append(dw_Sclass.ClientID).Append("\").length = 0 ;\r");
            sb.Append(" var locationid=locationid;\r");
            sb.Append("for (i=0;i < " + count + "; i++)\r");
            sb.Append("{\r");
            sb.Append("if (subcat[i][1] == locationid)\r");
            sb.Append("{ \r");
            sb.Append("document.getElementById(\"" + dw_Sclass.ClientID + "\").options[document.getElementById(\"" + dw_Sclass.ClientID + "\").length]=");
            sb.Append("new Option(subcat[i][0], subcat[i][2]);\r");
            sb.Append("}\r");
            sb.Append("}\r");
            sb.Append("}\r");
            sb.Append("</script>\r");
            this.Page.RegisterStartupScript("dw", sb.ToString());
        }
    参考这个
      

  4.   

    Refer:
    http://www.cnblogs.com/insus/articles/2036271.html