如何将后代代码中的一个字符串数组传递到JS变量中,我是这么写的
JS
$(function() {
var arr = []
var temp=<%=Imgurl %>;
for (var x=temp.Length-1; x>=0; x--)

 if(temp[x].ToString()=='' )
 {
   continue;
 }
arr.push(temp[x].ToString() %>);
$("#click").threesixty({images:arr, method:'click', 'cycle':1, auto:true});
    }
);其中Imgurl是后台定义的一字符串数组后台
 public string [] Imgurl; public void SetProduct(string paramProductID)
    {
        ProductsManager myProduct = new ProductsManager();
        DataSet myDs = myProduct.searchProduct(null, paramProductID);
        if (myDs.Tables[0].Rows.Count > 0)
        {
            Imgurl = myDs.Tables[0].Rows[0]["ImgUrl"].ToString().Split('|');
        }
    }运行时总是报var temp=<%=Imgurl %>;出错,额,该咋办啊

解决方案 »

  1.   

    报什么错误,将public string [] Imgurl 改成public static string [] Imgurl 试试
      

  2.   

    换种方式,参考一下:
        /// <summary>
        /// 加载会员银行
        /// </summary>
        private void LoadBanks()
        {
            UserBankAccount bank = new UserBankAccount();
            DataTable data = bank.GetAccounts(id);        string js = "<script type='text/javascript'>var currBanks = new Array();";
            if (data != null && data.Rows.Count > 0)
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    DataRow row = data.Rows[i];
                    js += string.Format(@"currBanks[{0}]=new Array('{1}','{2}','{3}','{4}');",
                                                                      i.ToString(),
                                                                      row["id"].ToString(),
                                                                      row["bank"].ToString(),
                                                                      row["account"].ToString(),
                                                                      row["btype"].ToString());
                }
            }
            js += "</script>";        ClientScript.RegisterClientScriptBlock(this.GetType(), "LoadBanks", js);
        }
      

  3.   

    谢谢你啊,我根据你的也做了修改
    后台:定义数组并赋值
     public string [] Imgurl;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SetProduct();
            }
        }
        public void SetProduct()
        {
            StringBuilder js = new StringBuilder();
            js.Append("<script type='text/javascript'>var currBanks = new Array();");        ProductsManager myProduct = new ProductsManager();
            DataSet myDs = myProduct.searchProduct(null, "5");
            if (myDs.Tables[0].Rows.Count > 0)
            {
                Imgurl = myDs.Tables[0].Rows[0]["ImgUrl"].ToString().Split('|');
            }        for (int i = Imgurl.Length - 1; i >= 0; i--)
            {
                if (Imgurl[i] == "")
                {
                    continue;
                }
                js.Append(string.Format(@"currBanks[{0}]=new Array('{1}');",
                i.ToString(),
                Imgurl[i].ToString()));
                                                                             }
          
            js.Append("</script>");        ClientScript.RegisterClientScriptBlock(this.GetType(), "SetProduct", js.ToString());
            }然后再前台
    <script type="text/javascript">
      $(function()
       {
      var arr = []
      for (var x=currBanks.length-1; x>=0; x--)
       arr.push(currBanks[x]);
           $('#click').threesixty(
               {
                 images:arr, method:'click', 'cycle':1, auto:true
               }
             );
        }
        );
    </script>
    运行时就提示currBanks未定义
        
    可还是没达到我要效果,额,可
      

  4.   

    把数组放到session js 取sessionvar sConfirmMan = '<%= Session["名称"]%>';
      

  5.   

    lz可以试下把字符串数组拼接成字符串,再在js里转换成字符串试下
      

  6.   

    这代码为题一大堆
    首先,var temp='<%= Imgurl %>'; 这里要加引号
    其次,public static string [] Imgurl;这里要静态变量
    最后,你有没有执行过setproduct函数啊?