2012-01-22 39 views
2

我正在使用Reimers ASP.NET控件非常棒。但现在我有一个小问题。 我在地图上添加了两个引脚,就像您在下面的代码中看到的一样。当我点击地图上的标记时,会执行map_OverlayClick方法,但不会更改divTest中的文本。它也可以是标签,文本框或其他。我能用新文本更新这个div吗?如何使用Reimer ASP.NET控件更新div?

我试图用Reimers控件做类似this的操作。

Reimers asp.net map control

的Default.aspx:

<%@ Register Assembly="Reimers.Google.Map" Namespace="Reimers.Google.Map" TagPrefix="Reimers" %> 
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
     <Reimers:Map ID="Map1" runat="server" Width="400" Height="400" DefaultMapType="Terrain"> 
    </Reimers:Map> 
<div id="divTest" runat="server" /> 

代码behinde:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
      divTest.InnerHtml = "First div text..."; 
      LatLng laln = new LatLng(); 
      laln.Latitude = 65; 
      laln.Longitude = -19; 

      Marker marker = new Marker(65.4, -18.5); 
      Map1.Overlays.Add(marker); 

      Marker marker1 = new Marker(65.4, -18.3); 
      Map1.Overlays.Add(marker1); 

      Map1.Zoom = 7; 
      Map1.Center = laln; 
     } 

     Map1.OverlayClick += map_OverlayClick; 
    } 

    void map_OverlayClick(object sender, OverlayEventArgs e) 
    { 
     divTest.InnerHtml = "Second div text.."; 
    } 

回答

0

如果你看看这个tutorial,然后你会看到这个模式是一个分配JavaScript命令到事件参数(OverlayEventArgs)的MapCommand属性。

在你的情况,你想要的是执行:

document.getElementById("divTest").innerHTML = "Second div"; 

所以,你必须该命令分配给MapCommand,像这样:

e.MapCommand = "document.getElementById(\"divTest\").innerHTML = \"Second div\";"; 

如果你使用jQuery或其他一些客户端框架,您当然可以参考,因为地图控件只是执行您从服务器上传递的JavaScript。

如果您不需要任何服务器处理,更好的选择可能是将命令设置为适当的客户端处理程序(虚拟代码:Marker.ClientsideHandlers.OnClick =“您的JavaScript代码”)。

+0

好吧,我试着做你告诉我的。但我没有得到它的工作。当我在谷歌浏览器中运行此项时,我在javascript中看到以下错误:_italic_Default.aspx:92 Uncaught ReferenceError:divTest未定义(重复6次)_italic_。 – Krossdal

+0

我也尝试过,并没有得到它的工作:Marker marker = new Marker(65.4,-18.5); marker.ClientSideHandlers.OnClick =“document.getElementById(\”divTest \“)。innerHTML = \”mark2 \“;”; marker.Clickable = true; Map1.Overlays.Add(标记); – Krossdal

+0

divTest应该是您尝试引用的div的客户端ID。您需要修改代码以确保它与您的代码无关。 – jjrdk