2010-08-03 2 views
2

Я могу использовать JQuery, чтобы изменить значение CascadingDropDown, но событие, пожары, которые не вызывает ребенка выпадающего меню объекта управления, чтобы заполнить данными не происходит:JQuery изменить значение ASP.NET AJAX CascadingDropDown

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

Чтобы быть ясным, ddlFromCompetition и ddlToCompetition не являются родительскими/дочерними. Это дочерний элемент 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() работает (выбранное значение изменяется), но не срабатывает ('change'). Должно быть что-то особенное в отношении поведения ASP.NET AJAX CascadingDropDown, и какое событие он запускает, что заставляет его реагировать только на событие ручного изменения с помощью мыши. –

+0

Вы пробовали triggerHandler ('change')? это стоит попробовать. –

+0

Не работает. Я думаю, что мне почему-то нужно вызвать CascadingDropDown.raiseSelectionChanged() –

Смежные вопросы