2011-07-16 5 views
0

私はそのボタンのボタンフィールドの列を持つasp gridviewを持っていますクリックした行の値(経度と緯度)をクリックしてGoogleマップにポイントを追加する必要があります。私はこれのためのJavaScript関数を書いていると私はOnClientClickでその関数を呼び出しているが、問題は私はどのように長いとlattをその関数に渡すか分からない。私は隠しフィールドを使用しようとしましたが、新しいgoogle.maps.LatLng()は二重の値を取りますので、動作しません。ここに私のjavascript関数、ASP google mapボタンをクリックするとマーカーが追加されます

function addDoctorLocation() 
{ 
     var lat = document.getElementById('<%= hfLong.ClientID %>').value; 
     var longt = document.getElementById('<%= hfLong.ClientID %>').value; 
     var myLatlng = new google.maps.LatLng(parseFloat(document.getElementById('<%= hfLong.ClientID %>').value), parseFloat(document.getElementById('<%= hfLong.ClientID %>').value)); 
     var myOptions = { 
     zoom: 10, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    var marker = new google.maps.Marker({ 
      position: myLatlng, 
      title:"Hello World!" 
     }); 

     // To add the marker to the map, call setMap(); 
     marker.setMap(map); 
} 

と私のASPコードは、(。ここで私はGridViewのRowCommandイベントの隠しフィールドの値を割り当てるために期待していますひとつのボタンにGridViewを持っていないです)です

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Button ID="Button1" runat="server" Text="Button" 
      OnClientClick="addDoctorLocation()" onclick="Button1_Click" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

誰かが私にこの問題を解決するのを手伝ってください。このソリューションは、私がJavaScriptで長さと緯度の値をハードコードするときに機能します。しかし、ユーザーがグリッドビューの行ボタンをクリックしたときにそれらを渡したいと思います。

+0

これはおそらくあなたの問題とは関係ありませんが、hfLongの値を緯度と経度の両方に使用していることがわかりました。 – Ray

+0

はいRayページ上の2つの非表示フィールドの値をテスト用に割り当てています。ここでは、グリッドビューではないボタンを1つだけ追加しました。これらの値をgridview RowCommandイベントに割り当てることを望みます。 – janitheshan

+0

あなたは隠しフィールドの1つのみの値をlatとlongの両方に使用しています。これは、あなたが行くべきだと思うところに地図上のポイントを置くことはありません。 – Ray

答えて

0

感謝の皆は私が解決策を見つけた - これが解決しない場合は

、あなたが見ているかについての詳細情報を投稿してください。私は、更新パネル内のボタンを追加して、その後、私はここでそのボタンをクリックしたときに、私のjavascriptの機能はボタンクリックコードで呼ばれてきた、

 string lat = "-25.363882"; 
     string longt = "131.044922"; 

     ScriptManager.RegisterStartupScript(this,this.GetType(), 
      "addDoctorLocation", 
      "addDoctorLocation(" + lat + "," + longt + ")", true); 

addDoctorLocation()、LATT時間がかかり、私のjavascriptの関数であり、追加します私の地図上のポインです。

0

クリックごとに新しいgoogle.maps.Mapを作成しています。あなたのやりたいことではないかもしれません。ページの読み込み時に別の場所にマップを作成し、そこに割り当てた 'mao'変数を使用してマーカーを追加します。など、エラーメッセージ

+0

申し訳ありませんRay私はグーグルマップで初めてです。 – janitheshan

+0

'var map = ...'を開始する行は、クリックハンドラ内で実行しないでください。ページが読み込まれると、一度だけ実行されます。 – Ray

+0

ahh tx :) – janitheshan

関連する問題