我正在尝试根据用户在下拉列表中所做的选择从 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
很好的-但是一旦我拥有它-似乎什么都不起作用了……
如何动态禁用 Ajax Control Toolkit 的 AutocompleteExtender?
在标记中,静态地,我使用
<asp:AutoCompleteExtender Enabled="False" .... />
然后什么都没有呈现到我的页面中。