2013-03-24 98 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