2012-01-22 14 views
2

Reimers ASP.NETコントロールを使用しています。素晴らしいです。でも今は少し問題があります。 以下のコードでわかるように、マップに2つのピンを追加します。マップ上のマーカーをクリックすると、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:あなたはこのtutorialを見てみると

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

は、その後、あなたはパターンが割り当てることであることがわかりますJavaScriptコマンドをイベント引数(OverlayEventArgs)のMapCommandプロパティに追加します。あなたのケースでは

、何がしたいことを実行することです:

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

だから、あなたがそうのように、MapCommandにそのコマンドを割り当てることがあります。

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

あなたはjQueryのを使用したり、他のいくつかの場合クライアント側のフレームワークであれば、マップコントロールは単にJavaScriptを実行するだけなので、サーバーから渡すことができます。

サーバー処理が不要な場合は、コマンドを適切なclientsideハンドラ(ダミーコード:Marker.ClientsideHandlers.OnClick = "JavaScriptコード")に設定することをお勧めします。

+0

あなたが私に言ったことをやろうとしました。しかし、私はそれが機能するようにはなっていません。 Google Chromeでこれを実行すると、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

関連する問題