2012-02-05 136 views
1

我想設計一個級聯下拉框。我正在使用3個asp.net下拉菜單。頁面加載中的第一個加載國家。然後,當一個國家被選中時,我會對webmethod進行ajax調用。我爲屬於該國家的團隊獲取數據。數據在我轉換成JSON的數據集中,然後返回。在成功之後,我需要添加哪些代碼來將json數據綁定到下拉列表。下面是 是代碼。如何將json數據綁定到使用jquery的asp.net dropdownlist?

$(document).ready(function() { 

     $('#ddlcountries').change(function() { 

      debugger; 

      var countryID = $('#ddlcountries').val(); 

      $.ajax({ 

       type: "POST", 
       url: "Default.aspx/FillTeamsWM", 
       data: '{"CountryID":' + countryID + '}', 
       contentType: "application/json; charset=utf-8", 
      dataType: "json", 
       success: function(jsonObj) { 


       /* WHAT CODE DO I ADD HERE TO BIND THE JSON DATA 
       TO ASP.NET DROP DOWN LIST. I DID SOME GOOGLING 
       BUT COULD NOT GET PROPER ANSWER */ 


       }, 
       error: function() { 
        alert('error'); 
       } 

      }); 

     }); 


    }); 
+0

可能重複[如何使用jQuery將選項添加到DropDownList?](http://stackoverflow.com/questions/317095/how-do-i-add-options-to-a-dropdownlist -using-jquery) – 2012-02-05 17:40:40

+0

不要忘記,如果你想讀取客戶端修改的dropdow n列表(C#或VB),你需要使用Request.Form [「Control-ID」],因爲你的第二個下拉列表中的數據是加載客戶端(javascript)的。 – Zachary 2012-02-06 18:07:27

回答

0

根據你傳遞給客戶端的內容,我假定它是一個List<string>。您可以根據您傳遞給客戶端的內容來相應地調整代碼,因爲您沒有告訴我們傳回的內容。

所以,如果是這樣的話做這樣的事情:

// first remove the current options if any 
$('#ddlTeams').find('option').remove(); 

// next iterate thru your object adding each option to the drop down\  
$(jsonObj).each(function(index, item){ 
    $('#ddlTeams').append($('<option></option>').val(item).html(item)); 
}); 

再假設,如果您的列表具有包含teamid和`teamname11對象

// first remove the current options if any 
$('#ddlTeams').find('option').remove(); 

// next iterate thru your object adding each option to the drop down\  
$(jsonObj).each(function(index, item){ 
    $('#ddlTeams').append($('<option></option>').val(item.teamid).html(item.teamname)); 
}); 
+0

嗨Gabe,我嘗試了代碼,但它的工作!它是一個asp.net下拉控件,如果你把它弄糊塗成爲