ユーザーがドロップダウン リストで行った選択に基づいて、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" .... />
そして、私のページには何もレンダリングされません。