C#如何将数组传给javascript

从TXT读取经纬度坐标,将它们编成数组,然后传给webbrowser里显示的一个GoogleMap的html,这个网页是用javascript写的,问题是怎么传给javascript里面的function:
var Point= new GLatLng(30.2884, 120.1340)让数组的连续两个值可以赋给这样的Point~
(我现在没分,不过过几天我追加分100~)
具体一点,最好能把C#和javascript里要添加的代码让我看一下~

第一步:定义cs数组  

cs文件里后台程序中要有数组,这个数组要定义成公共的数组。  

 public string[] lat = null;  

 public string[] lng = null;  

第二步:给cs数组赋值  

cs数组的值一般都是从数据库中取到的,也可以自己定义

第三步:将cs数组赋给前端的js数组  

这个步骤是关键,选用的方法就是<%=cs数组%>。这样模糊的说法也是百度得到的,赋值会用到循环,即会一个元素一个元素的赋值。  


示例:

后台cs代码  

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Data.OleDb;  
using System.Data;  
using System.Collections;  
  
public partial class VideoSource : System.Web.UI.Page  
{  
    public string[] lat = null;//存放纬度值  
  public string[] lng = null;//存放经度值  
  public int lng_len = 0;//用于获得数组长度  
  public int k = 0;//用于赋值循环  
  protected void Page_Load(object sender, EventArgs e)  
  {  
      ArrayList lng_list = new ArrayList();  
    ArrayList lat_list = new ArrayList();  
    OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("App_Data/Database1.accdb"));  
    con.Open();  
    string sql = "select * from tb_videos";  
    try  
    {  
        OleDbDataAdapter gh = new OleDbDataAdapter(sql, con);  
      DataSet ds = new DataSet();  
      gh.Fill(ds);  
      con.Close();  
      foreach (DataRow DR in ds.Tables[0].Rows)  
      {  
        lng_list.Add(DR[2].ToString());  
        lat_list.Add(DR[3].ToString());  
      }  
    }  
    catch  
    {  
      con.Dispose();  
    }  
    lng = (string[])lng_list.ToArray(typeof(string));  
    lat = (string[])lat_list.ToArray(typeof(string));  
    lng_len = lng_list.Count;  
}

  

前台aspx代码  

<script type="text/javascript">  
var jingdu = new Array();  
var weidu = new Array();  
<%  
for(int k=0;k<lng_len;k++){  
%>  
jingdu.push("<%=lng[k]%>");  
    weidu.push("<%=lat[k]%>");  
    <%  
}  
%>  
var latlng=[];  
for(var i=0;i<jingdu.length;i++){  
    latlng.push(new google.maps.LatLng(jingdu[i],weidu[i]));  
}  
</script>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-02
比如说 吧TXT读取的坐标放到hiddenfield里
然后将hiddenfield的ClientID传到function里,在用javascript读取hiddenfield的value.
第2个回答  推荐于2017-11-22
这个有很多种方式:
1. 使用querystring传值,比方说一个URL=a.html?X=30.2884&Y=120.1340,用脚本读取querystring就可以获取值了。
2. 使用Ajax
对于坐标的输出可以输出json对象,推荐使用json格式,转换起来方便,用C#生成json对象 {X:30.2884, Y:120.1340},ajax读取然后解析就可以了
也可以使用XML作为坐标表示,具体格式自己定义,C#输出xml也很方便本回答被提问者采纳