如何在.net程序中输出以JS数组的格式的JS文件

xieyun9958 2009-12-10 10:02:16
如何在程序中输出一段JS数组格式,然后保存为JS文件!格式如下所示:

//初始化常用机场城市
var commoncitys=new Array();

commoncitys[0]=new Array('SZX','深圳','SHENZHEN','SZ');

commoncitys[1]=new Array('PEK','北京','BEIJING','BJ');

commoncitys[2]=new Array('SHA','上海','SHANGHAI','SH');

commoncitys[3]=new Array('CAN','广州','GUANGZHOU','GZ');

commoncitys[4]=new Array('CTU','成都','CHENGDU','CD');

commoncitys[5]=new Array('HGH','杭州','HANGZHOU','HZ');

commoncitys[6]=new Array('CSX','长沙','CHANGSHA','CS');

commoncitys[7]=new Array('CKG','重庆','CHONGQING','CQ');


我想从数据库中读取我当前的字段,然后输出来,new Array('CKG','重庆','CHONGQING','CQ');这里的数组可以定义的,如果想输出三个就只显示三个,commoncitys[7]还有这里要根据数据的条数来定义,请问高手们有办法解决吗?
...全文
147 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dadaweini2010 2012-06-26
  • 打赏
  • 举报
回复
楼上的可以用 O(∩_∩)O哈哈~
xieyun9958 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 watsonchia 的回复:]
引用 3 楼 xieyun9958 的回复:
2楼的能否再说明白些,偶是菜鸟!!谢谢!有个例子是最好了!

上面的代码已经比较显然了吧。。
string path = Server.MapPath("test.js");
if (!File.Exists(path))
    File.Create(path).Close(); //如果js文件不存在就创建一个空的js文件

//下面就往js文件里写js数组
using (StreamWriter sw = new StreamWriter(path))
{
    sw.WriteLine("var commoncitys=new Array();"); //往js文件第一句
    //比如你的数组的数据保存在一个名为dt的datatable里,datatable有四列 
    for (int i = 1; i <= dt.Rows.Count; i++ )
    {
        sw.WriteLine(String.Formate("commoncitys[{0}]=new Array('{1}','{2}','{3}','{4}');", i, dt.Rows[i - 1][0], dt.Rows[i - 1][1], dt.Rows[i - 1][2], dt.Rows[i - 1][3]));
    } //循环把数据写入数组
}

以上代码手写的,可能有点小错 - -
[/Quote]

我已经做出来了,结果跟你说的一样,一开始可能自己想得太复杂了。其实是很简单的事情,多谢你的提醒!我的代码如下:

//假设要生成的JS文件为:aa.js
string path = Server.MapPath("JS/aircity.js");
if (File.Exists(path))
{
File.Delete(path);
}
DataTable dt = DbHelper.GetDataTable("select * from tbStation ");
//创建JS文件.
StreamWriter sr = File.CreateText(path);
sr.WriteLine("//初始化当前城市地铁站名");
sr.WriteLine("var citys=new Array();" + "\r\n");
// 这里是JS中的内容
for (int i = 0; i < dt.Rows.Count; i++)
{
sr.WriteLine("citys[" + i + "]=new Array(\"" + dt.Rows[i]["St_Py_Name"] + "\",\"" + dt.Rows[i]["St_Name"] + "\",\"" + dt.Rows[i]["St_En_Name"] + "\",\"" + dt.Rows[i]["St_Py_Name"] + "\",\"" + dt.Rows[i]["Ct_NO"] + "\");" +"\r\n");
}
// ……
sr.Close();
watsonchia 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xieyun9958 的回复:]
2楼的能否再说明白些,偶是菜鸟!!谢谢!有个例子是最好了!
[/Quote]
上面的代码已经比较显然了吧。。
string path = Server.MapPath("test.js");
if (!File.Exists(path))
File.Create(path).Close(); //如果js文件不存在就创建一个空的js文件

//下面就往js文件里写js数组
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("var commoncitys=new Array();"); //往js文件第一句
//比如你的数组的数据保存在一个名为dt的datatable里,datatable有四列
for (int i = 1; i <= dt.Rows.Count; i++ )
{
sw.WriteLine(String.Formate("commoncitys[{0}]=new Array('{1}','{2}','{3}','{4}');", i, dt.Rows[i - 1][0], dt.Rows[i - 1][1], dt.Rows[i - 1][2], dt.Rows[i - 1][3]));
} //循环把数据写入数组
}

以上代码手写的,可能有点小错 - -
xieyun9958 2009-12-10
  • 打赏
  • 举报
回复
2楼的能否再说明白些,偶是菜鸟!!谢谢!有个例子是最好了!
watsonchia 2009-12-10
  • 打赏
  • 举报
回复

string path = Server.MapPath("test.js");
if (!File.Exists(path))
File.Create(path).Close();
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine("var commoncitys=new Array();");
// 用sw.WriteLine("")循环输出数据
}

zhucemajiaburongyi 2009-12-10
  • 打赏
  • 举报
回复
StringBuilder 类

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧