【发布时间】:2015-06-23 04:48:01
【问题描述】:
在我的 aspx 页面上,我有一个中继器控件,它显示数据库中位置的纬度。我想将从中继器返回的值传递到 java 脚本中,该脚本在 sql server 数据库的谷歌地图上显示位置标记。
<form id="form1" runat="server">
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var markers = [
<asp:Repeater ID="rptMarkers" runat="server">
<ItemTemplate>
{
"title": '<%# Eval("City") %>',
"lat": '<%# Eval("Latitude") %>',
"lng": '<%# Eval("Longitude") %>',
}
</ItemTemplate>
<SeparatorTemplate>
,
</SeparatorTemplate>
</asp:Repeater>
];
</script>
</form>
这是我的代码,
void GetData(string strRsult)
{
XmlDataDocument xmlDataDoc = new XmlDataDocument();
xmlDataDoc.LoadXml(strRsult);
foreach (XmlNode n in xmlDataDoc.DocumentElement.GetElementsByTagName("Property"))
{
if (n.HasChildNodes)
{
List<Markers> markers = new List<Markers>();
foreach (XmlNode childNode in n)
{
if (childNode.Name=="GEOData")
{
markers.Add(new Markers
{
City = childNode.Attributes["City"].Value,
Longitude = childNode.Attributes["Longitude"].Value,
Latitude = childNode.Attributes["Latitude"].Value
});
}
}
rptMarkers.DataSource = markers;
rptMarkers.DataBind();
}
}
【问题讨论】:
-
无需从转发器读取,只需从转发器数据源创建一个json对象并将其传递给
markers -
@DGibbs 我如何创建一个 json 对象
-
类似这样的东西:
var jsonString = new JavaScriptSerializer().Serialize(dataSource);. -
我正在更新我想要查看的代码。
标签: javascript c# asp.net google-maps