您的位置:首页 > Web前端 > JavaScript

js使用服务器端的数组

2010-07-27 15:38 323 查看
方法1,使用ClientScriptManager.RegisterArrayDeclaration

该方法使用Page对象定义一个Javascript数组,需要参数数组名和值

在PageLoader里添加

ClientScriptManager csm = Page.ClientScript;
string arrayName = "Language";
csm.RegisterArrayDeclaration(arrayName, "'VB'");
csm.RegisterArrayDeclaration(arrayName, "'Java'");
csm.RegisterArrayDeclaration(arrayName, "'C'");
csm.RegisterArrayDeclaration(arrayName, "'C++'");


客户端添加js 函数,用来显示数组的值

<mce:script language="javascript" type="text/javascript"><!--
function showArray() {
for (var i = 0; i < Language.length; i++) {
alert(Language[i].toString());
}
}
// --></mce:script>


最后,在<form id="form1" runat="server"></form>里添加一个按钮来调用该js函数,如:<input type="button" value="看数组内容1" onclick="showArray();" />。不知什么原因,必须写在<from runat="server">里才能调用该js函数。否则找不到数组名Language。

方法2,也是我经常用的,传一个字符串过去,以特定的符号分割,然后用split方法

var b = 'VB,C,C++,Java';
//这个字符串从服务器端传过来
var temp = new Array();
temp = b.split(',');


传递2维数组

服务器端创建2维数组

DataRow[] dr = //赋值
string str = "[";
for (int i = 0; i < dr.Length; i++)
{
str += "{'name':'" + dr[i]["name"].ToString() + "','value':'" + dr[i]["value"].ToString() + "'},";
}
str = str.Substring(0, str.Length - 1);//去掉最后一个逗号
str += "]";


js端取该二维数组:

var arr = eval(result);
var count = arr.length;
for (var i = 0; i < count; i++) {
alert(arr[i][name] + arr[i][value]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: