2013-03-24 97 views
0

這裏的JavaScript函數是我的代碼:調用使用ASP.Net按鈕控制

<script type="text/javascript"> 
      var geocoder; 
      var map; 
      var latlngstr; 
      function initialize() { 
       geocoder = new google.maps.Geocoder(); 
       var latlng = new google.maps.LatLng(-34.397, 150.644); 
       var mapOptions = { 
        zoom: 15, 
        center: latlng, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
       }; 
       map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 
      } 


      function codeAddress() { 
       var address = document.getElementById('address').value; 

       geocoder.geocode({ 'address': address }, function (results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 

         latlngstr = results[0].geometry.location; 

         map.setCenter(results[0].geometry.location); 
         var marker = new google.maps.Marker({ 
          map: map, 
          position: results[0].geometry.location 
         }); 
        } else { 
         alert('Geocode was not successful for the following reason: ' + status); 
        } 
       }); 


       document.getElementById('lat').value = latlngstr.lat(); 
       document.getElementById('lng').value = latlngstr.lng(); 
      } 
     </script> 
     </head> 
     <body onload="initialize()"> 
      <form id="form1" runat="server"> 

     <div> 
      <input id="address" type="text" value="sydney" /> 
      <input type="button" value="Geocode" onclick="codeAddress()"> 
      <input id="lat" type="text" /> 

      <input id="lng" type="text" /> 
     </div> 


      <asp:Button ID="Button1" runat="server" 
        Text="Button" EnableViewState="False" 
        ViewStateMode="Disabled" OnClientClick="javascript:return codeAddress();"/> 



      <div id="map-canvas"></div> 
     </form> 
     </body> 
    </html> 

我要調用的函數codeAddress。當我用html按鈕調用這個函數時,它的值爲Geocode的按鈕,它工作正常。但是當我用ASP.Net按鈕調用該函數時,'else'部分被執行並且不會產生任何結果。

+1

http://social.msdn.microsoft.com/Forums/en-US/netfxjscript/thread/3efc7bf9-730f-47d0-bc9c-7a3550cf1282/ – btevfik 2013-03-24 13:30:30

回答

0

我推斷你想要做的是使用地理編碼代碼獲取經度和緯度,然後回發這些。

不是讓一個按鈕做客戶端代碼,而是(同時)回發,我會保留HTML按鈕,但是一旦設置了字段,就從JavaScript代碼開始表單發佈:

  document.getElementById('lat').value = latlngstr.lat(); 
      document.getElementById('lng').value = latlngstr.lng(); 
      document.forms[0].submit(); 
+0

感謝您的答覆安,但我想在調用的函數僅點擊asp.net按鈕控件....我在按鈕的onclientclick屬性中傳遞了函數名,但它執行了函數的else部分.... – 2013-03-24 18:31:49

+0

這可能是也可能不是問題,但是您使用的語法不正確。而不是'javascript:return codeAddress();'它應該是'codeAddress()',就像HTML按鈕一樣。 – 2013-03-24 18:48:04

+0

感謝您的回覆Ann ....我的問題解決了......我已經將UseSubmitBehavior =「false」屬性添加到按鈕控件,現在它工作正常... – 2013-03-25 15:43:13