2010-08-03 47 views
2

我可以使用jQuery改變CascadingDropDown的價值,但是這會導致目標控件的子下拉列表填充數據永遠不會發生的火災事件:jQuery的變化值AJAX CascadingDropDown

$("#<%= ddlFromCompetition.ClientID %>").change(function() { 
    var fromValue = $("#<%= ddlFromCompetition.ClientID %>").val(); 
    $("#<%= ddlToCompetition.ClientID %>").val(fromValue); // causes value to change, but child doesn't update 
}); 

要清楚,ddlFromCompetitionddlToCompetition不是父母/子女。這是ddlToCompetition的孩子不使用上述代碼更新。使用鼠標選擇ddlToCompetition時,其子級下拉更新按預期更新。

我試着打電話$("#<%= ddlToCompetition.ClientID %>").change()試圖強制事件發生,但它不起作用。

回答

0

您需要的觸發()事件

$("#<%= ddlToCompetition.ClientID %>").trigger('change'); 

JQuery的文檔:http://api.jquery.com/trigger/

而且,因爲在ddlFromCompetition的背景下ddlFromCompetition火災第一改變事件處理程序,你應該能夠改變。 ..

var fromValue = $("#<%= ddlFromCompetition.ClientID %>").val(); 

到...

var fromValue = $(this).val(); 
+0

$(this).val()工作(選定的值更改)但不觸發('更改')。對於ASP.NET AJAX CascadingDropDown行爲必定存在一些特殊情況,以及它觸發哪個事件,導致它僅使用鼠標響應手動更改事件。 – 2010-08-03 15:52:43

+0

你試過triggerHandler('改變')嗎?值得一試。 – 2010-08-03 16:07:05

+0

沒有工作。我想我需要調用CascadingDropDown.raiseSelectionChanged() – 2010-08-03 16:20:04