2

我在使用 jquery 和 javascript 从客户端设置上下文键时遇到问题。找不到 ASP.Net 的 AutoCompleteExtender 的 set_contextKey 函数。

这是我的文本框和 AutoCompleteExtender 的 HTML ...

<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 函数上抛出错误。谁能解释我在这里做错了什么...

4

2 回答 2

3

我发现更换线路

$('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());

用这条线

$find('acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());

解决了这个问题。不知道为什么,有人可以帮忙吗?

于 2011-04-07T09:10:09.717 回答
1

因此,为什么第一个不起作用确实有两个问题:

  1. 使用$find()asp.net ajax 工具包扩展对象并添加方法属性,如.set_contextKey. 在相同的对象上使用 jquery 选择器将不起作用。

  2. 此外,#acExt选择器意味着客户端 id 标记“acExt”。asp.net (< 4.0) 将为实际客户端 ID 添加一个长前缀。

如果要在 jQuery 中选择 asp.net 服务器标签,请改用 property/endswith 选择器$([id$='serverID'])

于 2011-07-29T18:06:42.003 回答