从.aspx.cs到.aspx中的js代码中传递数据

最近,由于项目需要需要将传感器的地理位置信息标记在百度地图上,无线传感器节点能够将自身经纬度信息,通过网络传递到数据库存储起来,然后将其读出来并在百度地图在地图上标记显示出来. 首先,在后台.aspx.cs需要将经纬度读取出来,后台代码如下所示:  

<span style="color: rgb(51, 102, 255);">  privatedouble[] Longitudes=newdouble[1024];

    privatedouble[] Latitudes=newdouble[1024];</span>

   <span style="color: rgb(255, 0, 0);">publicstringlongitude=string.Empty;

    publicstringlatitude=string.Empty;</span>

    publicstaticintSumCount;

    protectedvoidPage_Load(objectsender, EventArgs e)

    {

           

          if(!Page.IsPostBack)

          {

              GetLongitude();

              GetLatitude();

          }

            

             

            

    }

    //获取经度

    publicvoidGetLongitude(){

        DBAccess db =newDBAccess();//自己写的连接读取数据库

        SqlDataReader da = db.GetLongitudeData("北京");//获取北京监测站的经纬度

        intcount = 0;

        while(da.Read())

        {

            Longitudes[count] = System.Double.Parse(da["Longitude"].ToString());

           <span style="color: rgb(204, 0, 0);"> longitude += Longitudes[count]+"|";//将读取的传感器经纬度存储为字符串形式</span>

              

            count = count + 1;

        }

        SumCount = count;

    }

    //获取纬度

    publicvoidGetLatitude(){

        DBAccess db =newDBAccess();

        SqlDataReader da = db.GetLongitudeData("北京");//获取北京监测站的经纬度

        intcount = 0;

        while(da.Read())

        {

            Latitudes[count] = System.Double.Parse(da["Latitude"].ToString());

           <span style="color: rgb(255, 0, 0);"> latitude+=Latitudes[count]+"|";//<span style="color: rgb(204, 0, 0);">将读取的传感器经纬度存储为字符串形式</span>

</span>

            count = count + 1;

        }

标记为红色的地方为后来修改加上的,一开始在程序里面就只定义了两个浮点型数组

<span style="color: rgb(51, 102, 255);">  privatedouble[] Longitudes=newdouble[1024];

   privatedouble[] Latitudes=newdouble[1024];</span>

取完数据以后再前台JS中调用利用ASP的调用语法<%=Longitudes%>和<%=Latitudes%>在前台调用后台生成的数组。当在前台JS调用时,始终出现无法显示数组信息的现象。然后,我跟大家一样GOOGLE查询了许多类似的“Asp.net 后台数组如何传递给前台JS调用”,最后在这篇文章中查找到了类似的方法

http://topic.csdn.net/u/20090609/15/d590347d-4ebc-42ce-b2ae-6afa036b1762.html。所以在代码中加入了标记为红色的代码,将浮点型数组转换成字符串的形式,然后在前台JS写了如下代码:

  <span style="color: rgb(204, 0, 0);"> 
var array1 ='<%=longitude%>';//后台生成的经纬度字符串
     var array2 ='<%=latitude %>';//后台生成的经纬度字符串
     var pointX = array1.split('|');//解析字符串,生成相应的数组
     var pointY = array2.split('|');//解析字符串,生成相应的数组</span>
<span style="color: rgb(204, 0, 0);">      var count = pointX.length;//数组长度</span>
     for(var i = 0; i < count; i++) {
         if(pointX[i] > 0 && pointY[i] > 0) {
             addMarker(new BMap.Point(pointX[i], pointY[i]), i + 3);//向百度地图添加标记
         } 
     } 

 通过上述转换,就能偶实现后台数组为前台JS所用。虽然网上说的还有许多方法,但小弟时间有限,只实现了这种方法:后台数组转换成字符串,传递给前台,在前台进行解析。希望能偶对大家有帮助,我也是菜鸟,写的不好请大家多多包涵。程序运行如下图所示:读取数据库节点经纬度,在百度地图上

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值