C#(cs)从数据库中读取信息赋给string型数组,怎么把数组的值传递到前台的aspx供里面的JS调用呢?

解决方案 »

  1.   

    use Page's RegisterArrayDeclaration, see the example inhttp://tanguay.info/CodeExample.aspx?i=592
      

  2.   

    void Page_Load(Object sender, EventArgs e) 

       String scriptString = "<script language=JavaScript> function doClick() {";
       scriptString += "for(var index=0;index < myArray.length;index++)";
       scriptString += " myArray[index].show(); } <";
       scriptString += "/" + "script>";
         
       RegisterStartupScript("arrayScript", scriptString); 
       RegisterArrayDeclaration("myArray", "new obj('x'),new obj('y'),new obj('z')"); 
    }
      

  3.   

    Page.RegisterArrayDeclaration 方法声明一个值,该值在页呈现时声明为 ECMAScript 数组声明
    参数
    arrayName 
    要在其中声明该值的数组的名称。 
    arrayValue 
    要放置在数组中的值。 
    备注
    基于脚本的控件可以使用该方法以在数组内部声明它们自身,以便客户端脚本库可以与同一类型的所有控件一起工作。示例
    [Visual Basic, C#] 下面的示例使用 RegisterArrayDeclaration 方法声明了 myArray 这一数组,该数组包含名为 x、y 和 z 的三个对象。该示例使用 RegisterStartupScript 方法定义并注册启动脚本。当从包含此代码的页中调用 JavaScript doClick 函数时,将会初始化该数组及其对象。
    void Page_Load(Object sender, EventArgs e) 

       String scriptString = "<script language=JavaScript> function doClick() {";
       scriptString += "for(var index=0;index < myArray.length;index++)";
       scriptString += " myArray[index].show(); } <";
       scriptString += "/" + "script>";
         
       RegisterStartupScript("arrayScript", scriptString); 
       RegisterArrayDeclaration("myArray", "new obj('x'),new obj('y'),new obj('z')"); 
    }
      

  4.   

    如果采用ajax技术的话,可以不用把循环把数据库值赋给数组,再循环调用数组,可以直接用dataset,至少减少了一个循环,而且直接在前台用,且没有刷新,不防一试<SCRIPT language="javascript">
                function cityResult() 
                { 
                    var city=document.getElementById("DropDownList1");
                    AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
                }
                
                function get_city_Result_CallBack(response)
                {
                    if (response.value != null)
                    {                    
                        //debugger;
                        document.all("DropDownList2").length=0;                
                    var ds = response.value;
                        if(ds != null && typeof(ds) == "object" && ds.Tables != null)
                        {                    
                            for(var i=0; i<ds.Tables[0].Rows.length; i++)
                        {
                            var name=ds.Tables[0].Rows[i].city;
                          var id=ds.Tables[0].Rows[i].cityID;
                          document.all("DropDownList2").options.add(new Option(name,id));
                        }
                        }
                    }                
                    return
                }
    </SCRIPT>具体参考
    http://singlepine.cnblogs.com/articles/257954.html
      

  5.   

    RegisterArrayDeclaration("FavoriteNumbers", "1")
    RegisterArrayDeclaration("FavoriteNumbers", "2")
    RegisterArrayDeclaration("FavoriteNumbers", "3")
    这段代码会发出以下客户端脚本:<script language="javascript">
    <!--
       var FavoriteNumbers =  new Array(1, 2, 3);
          // -->
    </script>然后就可以在JS中使用了