我跟着例子更新從另一個下拉列表中選擇一個下拉菜單: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將保持它第一次點擊時的樣子。這有意義嗎?這到底是什麼造成的?我知道數據正在清除並添加了新的選項,但頁面仍然顯示舊列表或根本沒有。
請您可以發佈您使用更新從另一個下拉的代碼? –
簡單:當ddlAgency更改(onchange事件)時,它調用應該更新ddlPortfolio的PopulatePortfolioDropDown()。這就像ddlPortfolio得到關注時一樣,它不會更新。 –