2012-12-14 35 views
0

我跟着例子更新從另一個下拉列表中選擇一個下拉菜單:jQuery的刷新下拉

var pageUrl = '<%=ResolveUrl("~/Reports.aspx")%>'; 
    function PopulatePortfolioDropDown() { 
     var ddl = document.getElementById('<%=ddlPortfolio.ClientID %>'); 
     ddl.options.length = 0; 
     var prgyr = document.getElementById('<%= ddlProgYear.ClientID %>'); 
     var agy = document.getElementById('<%= ddlAgency.ClientID %>'); 
     $telerik.$('#<%=ddlPortfolio.ClientID %>').empty(); //.append('<option selected="selected" value="0">Please Select...</option>'); 
     var str = prgyr.options[prgyr.selectedIndex].text + '|' + agy.options[agy.selectedIndex].value; 
     $telerik.$.ajax({ 
      type: "POST", 
      url: pageUrl + '/LoadPortfolioDDL1', 
      data: '{yearcode:"' + str + '"}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: OnPortfolioData, 
      failure: function (response) { 
       alert(response.d); 
      } 
     }); 
    } 
    function OnPortfolioData(response) { 
     PopulateControl(response.d, $telerik.$('#<%=ddlPortfolio.ClientID %>')); 
    } 
    function PopulateControl(list, control) { 
     if (list.length > 0) { 
      control.attr("disabled", false); 
      control.empty(); 
      $telerik.$.each(list, function() { 
       control.append($telerik.$("<option></option>").val(this['Value']).html(this['Text'])); 
      }); 
     } 
     else { 
      control.empty().append('<option selected="selected" value="0">Not available<option>'); 
     } 
    } 

時,第一選擇ddlAgency這個偉大的工程。如果我進行第二次選擇,則顯示的列表不會更新,並且原始列表仍然顯示。但是,如果我選擇第二個列表中的一個項目,則更新後的項目(來自第二個調用)將正確顯示。這是IE的問題嗎?多一點信息:我想要更新的DDL不會在頁面加載時填充任何數據。如果我選擇DDL,它不會顯示任何選項。即使我在控制DDL中做出選擇,第二個也沒有顯示任何項目。如果我不點擊DDL,項目就會出現。這就像DDL將保持它第一次點擊時的樣子。這有意義嗎?這到底是什麼造成的?我知道數據正在清除並添加了新的選項,但頁面仍然顯示舊列表或根本沒有。

+0

請您可以發佈您使用更新從另一個下拉的代碼? –

+0

簡單:當ddlAgency更改(onchange事件)時,它調用應該更新ddlPortfolio的PopulatePortfolioDropDown()。這就像ddlPortfolio得到關注時一樣,它不會更新。 –

回答

1

要更新選擇菜單,jquery有一個基本的.change功能,用於監聽選項何時被選中。

http://api.jquery.com/change/

但是,如果你想改變是動態的,這.quickchange解決方法是你需要的魔術師:

Dynamic selects on iPhone not working

你只是附加的元素,但沒有更新的選擇列表以反映選擇選項時的變化。

這裏是所選擇的屬性的例子:

JQuery setting the selected attribute on a select list