首页 > 解决方案 > 传单地图无法识别我的数组变量来自后面代码中的隐藏字段值

问题描述

我试图在地图上显示来自 sql server 的一些 gps 点。我使用一些代码将我的点存储在一个隐藏的值中。

 string cs 

  =ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
        using(SqlConnection conn = new SqlConnection(cs))
        {

            conn.Open();
            SqlCommand cmd = new SqlCommand("select directionX,directionY from DailyReport where date='1397/10/20'", conn);
            SqlDataReader reader = cmd.ExecuteReader();
            List<string> list = new List<string>();
            while (reader.Read())
            {

                list.Add(reader["directionX"] +","+ reader["directionY"]);
                HiddenField1.Value= string.Join(",", list.ToArray());

            }
        }

之后,我将 hiddenfield 值存储在 javascript 变量中:

 var arr1 = '<%=this.HiddenField1.Value%>';  

但使用 javascript 代码映射不显示折线。

 <script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>

<script type="text/javascript" >
           var x = document.getElementById('<%= txtX.ClientID %>').value;
      var y = document.getElementById('<%= txtY.ClientID %>').value;
    function showRout() {
        //var mymap = L.map('mapid').setView([29.6208701, 52.5779901], 16);

        //var x = 29.6208701;

        var mymap = L.map('mapid').setView([x, y], 16);
        L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
            attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
        }).addTo(mymap);

        var arr = [
    [29.6208701, 52.5779901],
        [29.6195714, 52.5765552],
         [29.6182244, 52.5752645]
        ];

        var arr1 = '<%=this.HiddenField1.Value%>';    
        alert("value from hiddenfield is : "+arr1 +"and array written by hand is: " +arr);
        var polyline = L.polyline(arr1).addTo(mymap);

    }
</script>

当我写一个这样的javascript数组时没关系:

  var arr = [
    [29.6208701, 52.5779901],
        [29.6195714, 52.5765552],
         [29.6182244, 52.5752645]
        ];

我已经使用“alert”函数检查了来自两个变量“arr”和“arr1”的值,它们是相同的。我不知道如何使用我的隐藏字段值在传单地图上显示我的折线。

标签: javascriptleaflet

解决方案


因此,将隐藏字段分配给 Javascript 数组的最终答案是

var arr1 = [<%=this.HiddenField1.Value%>];

您也许可以考虑重写 C# 代码以输出 JSON,这样更容易进入 Javascript 世界。


推荐阅读