Я пытаюсь динамически включить / отключить элемент управления расширением автозаполнения из набора инструментов управления Ajax на основе выбора, сделанного пользователем в раскрывающемся списке.
В моем приложении ASP.NET 4.0 Webforms есть раскрывающийся список, и в зависимости от того, какая страна выбрана в нем, авторасширение почтового индекса должно быть включено или отключено.
Моя разметка:
<asp:DropDownList runat="server" ID="ddlCountries">
<Items>
<asp:ListItem Text="Switzerland" Value="CH" />
<asp:ListItem Text="Germany" Value="D" />
<asp:ListItem Text="Italy" Value="I" />
<asp:ListItem Text="France" Value="F" />
</Items>
</asp:DropDownList>
<br />
<asp:TextBox runat="server" ID="tbxZipcode" />
<asp:AutoCompleteExtender
runat="server" ID="acZipcode" BehaviorID="ZipcodeBehavior"
ServiceMethod="GetZipCode"
TargetControlID="tbxZipCode" MinimumPrefixLength="1" CompletionInterval="15"
OnClientItemSelected="PopulateTextboxes" CompletionSetCount="25" />
При такой настройке срабатывает расширитель автозаполнения и отображает действительные швейцарские почтовые индексы - жизнь хороша :-)
ОДНАКО: если пользователь выбирает другую страну, я хочу остановить этот расширитель автозаполнения - у меня нет других почтовых индексов в моей базе данных для отображения, а для отображения швейцарских почтовых индексов Франция не имеет смысла.
Итак, я попробовал что-то вроде этого, чтобы захватить событие change
в раскрывающемся списке.
$(document).ready(function () {
$('#<%= ddlCountries.ClientID %>').change(function () {
var chosenCountry = $(this).val();
var behavior = $('#ZipcodeBehavior');
if (chosenCountry == "CH") {
behavior.disabled = '';
} else {
behavior.disabled = 'disabled';
}
});
});
Я могу получить ZipcodeBehavior
нормально, но как только он у меня есть - кажется, что ничего больше не работает ...
Как динамически отключить AutocompleteExtender в Ajax Control Toolkit?
В разметке статически я использую
<asp:AutoCompleteExtender Enabled="False" .... />
а затем на моей странице ничего не отображается.