用c#代码动态创建javascript数组
Dynamically create javascript array with c# code behind
我正在更新一个旧的经典ASP网站到新的。net 3.5版本。该页面有一个客户端(我的老板)想要保留的自定义列表控件。这个列表控件需要几个数组才能正常工作。该数组是出版物的多维列表。它看起来是这样的:
var publicationTable = [
[31422,"Abilene Reporter News","Abilene","TX",false,"D",0],
[313844,"Acadiana Weekly","Opelousas","LA",false,"W",1],
[527825,"Action Advertiser","Fond du Lac","WI",false,"W",2]...n]
我想在服务器端生成这个数组并注册它。我已经看过msdn了,但这有点琐碎。概念上的问题是,数组是字符串和整数的混合物,我不确定如何重新创建它,所以如何?
你应该这样做:
背后的代码:
using System.Web.Script.Serialization;
...
public string getJson(){
var publicationTable = new List<object>{
new []{ 31422,"Abilene Reporter News","Abilene","TX",false,"D",0},
new []{ 313844,"Acadiana Weekly","Opelousas","LA",false,"W",1 },
new []{ 527825,"Action Advertiser","Fond du Lac","WI",false,"W",2}
};
return (new JavaScriptSerializer()).Serialize(publicationTable);
}
如你所见,为了创建一个混合类型的数组,我们创建了一个匿名类型的数组new []
。你也可以用new object[]
来做。
Aspx文件:
<script>
var publicationTable = <%= getJson() %>;
</script>
希望这对你有帮助。欢呼声
我认为一个List<List<object>>
包含您的项目,通过JavaScriptSerializer
将做的把戏。考虑到这些数据可能来自更结构化的数据类型,您可能比List<List<object>>
做得更好,但JavaScriptSerializer
可能是您所追求的。
这样行吗?
ArrayList list = new ArrayList{31422,"Abilene Reporter News","Abilene","TX",false,"D",0};
var str = string.Format("[{0}]", list.Cast<object>().Select(x => (x is string)?
string.Format(@"""{0}""", x) : x.ToString())
.Aggregate((x, y) => string.Format("{0}, {1}", x, y)));
可以以类似的方式扩展为多维数组
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)