У меня есть элемент управления AjaxControlToolkit.AutoCompleteExtender, прикрепленный к текстовому полю, и три переключателя. Когда пользователь выбирает переключатель, сервисный метод, используемый для получения значений, перечисленных в AutoCompleteExtender, изменяется следующим образом:
$("#radioButtonList input").click(function() {
var selectedValue = $(this).val();
if (selectedValue == 0) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod1');
}
else if (selectedValue == 1) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod2');
}
else if (selectedValue == 2) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod3');
}
$('#textbox').focus();
}
Я хочу убедиться, что, если пользователь выбирает переключатель, когда текст уже присутствует в текстовом поле, отображается список значений автозаполнения, основанный на новом методе обслуживания (так же, как если бы пользователь щелкнул радио и , затем , набираемый в текстовом поле).
Я пробовал различные механизмы запуска событий, такие как:
var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 77;
$('#textbox').trigger(press);
... каждый из этих ...
$('#textbox').keydown();
$('#textbox').keypress();
$('#textbox').keyup();
и даже:
$('#textbox').get(0).value += 'm';
но, похоже, ничего не вынуждает запускать правильные события, чтобы список автозаполнения снова отображался с результатами нового метода обслуживания. Как я могу сделать это, используя Javascript?
РЕДАКТИРОВАТЬ: я должен заметить: события jQuery запускаются правильно в каждом из указанных выше случаев, они просто не вызывают повторного появления списка автозаполнения, когда они это делают. Я полагаю, что еще не выбрал правильную комбинацию событий, которую autocompleteextender ожидает, чтобы список появился.