Asp.Net自动完成set_contextKey“对象不支持此属性或方法”

我在使用jquery和javascript从客户端设置上下文密钥时遇到问题。它无法找到ASP.Net的AutoCompleteExtender的函数set_contextKey。 这是我的文本框HTML和AutoCompleteExtender ...
<asp:TextBox ID="txtProduct" runat="server" AutoPostBack="true" OnTextChanged="txtProduct_TextChanged" Width="181px" /><ajaxToolkit:AutoCompleteExtender
    ID="AutoCompleteExtender_txtProduct" BehaviorID="acExt" runat="server" TargetControlID="txtProduct"
    CompletionListCssClass="autocomplete_completionListElement" CompletionListItemCssClass="autocomplete_listItem"
    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" MinimumPrefixLength="2"
    CompletionInterval="1000" ServicePath="~/WS/Service.svc" ServiceMethod="GetProductsByName"
    EnableCaching="true" DelimiterCharacters=";" UseContextKey="true" OnClientItemSelected="txtProduct_ClientItemSelected">
</ajaxToolkit:AutoCompleteExtender>
并且关于更改下拉列表的jquery是:
function ddlStore_onchange() {
    $('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
}
它在set_contextKey函数上抛出错误。谁能解释我在这里做错了什么......     
已邀请:
我发现更换线路
$('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
用这条线
$find('acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
解决了这个问题。不知道为什么,有人可以帮忙吗?     
所以第一个不起作用的原因确实存在两个问题: 使用asp.net中的
$find()
ajax工具包扩展对象并添加方法属性,如
.set_contextKey
。在相同对象上使用jquery选择器将不起作用。 此外,
#acExt
选择器意味着客户端id标记“acExt”。 asp.net(&lt; 4.0)将为实际的客户端ID添加一个长前缀。 如果要在jQuery中选择asp.net服务器标签,请使用属性/ endswith选择器
$([id$='serverID'])
。     

要回复问题请先登录注册