2012-08-23 127 views
0

我有一個三個dropdownlists國家,城市和地區,初始空白選定值和一個HTML頁面上的谷歌地圖。我試圖在用戶從下拉列表中選擇位置值時居中放大地圖。Javascript/ASP.net在下拉列表更改後觸發事件

因此,這裏是我面臨的一個問題的情形:

  1. 用戶選擇一個國家形成全國下拉列表。
  2. 我必須檢索下拉列表更改後選定的值。
  3. 火更新谷歌地圖

的事件中,我試圖用平變化和更改JavaScript事件,但既造成從下拉列表檢索的文本價值是文本的情況下,前值發送一個空文本(最初的空白文本)到谷歌地圖。

那麼,如何在下拉列表發生更改後觸發事件?

這裏是我的代碼:

<asp:DropDownList ID="DropDownList_Country" runat="server" Height="29px" Width="209px" 
          Font-Size="18px" CausesValidation="false" onchange="MapLocationUpdater();"> 


function MapLocationUpdater() { 

       var address = getDropdownListAddress(); 
       geocoder.geocode({ 'address': address }, 
       function (results, status) { 
        if (status == google.maps.GeocoderStatus.OK) { 
         map.setCenter(results[0].geometry.location); 
         map.setZoom(11); 
         var marker = new google.maps.Marker({ 
          map: map, 

          position: results[0].geometry.location 
         }); 

        } 
        else { 
         alert("Geocode was not successful for the following reason: " + status); 
        } 
       } 
       ); 
      } 

      function getDropdownListAddress() { 

       var ddlCountry = document.getElementById("<%=DropDownList_Country.ClientID%>"); 
       var ddlCity = document.getElementById("<%=DropDownList_City.ClientID%>"); 
       var ddlDistrict = document.getElementById("<%=DropDownList_District.ClientID%>"); 

       var CountryTxt = ddlCountry.options[ddlCountry.selectedIndex].text; 
       var CityTxt = ddlCity.options[ddlCity.selectedIndex].text; 
       var DistrictTxt = ddlDistrict.options[ddlDistrict.selectedIndex].text; 

       return CountryTxt + " " + CityTxt + " " + DistrictTxt; 

      } 

回答

2

試試這個:

<asp:DropDownList ID="DropDownList_Country" runat="server" Height="29px" Width="209px" 
         Font-Size="18px" CausesValidation="false" onchange="setTimeout('MapLocationUpdater();',1000);"> 
+0

非常有趣的黑客。作品篦! – Eyad

相關問題