Asp.Net 自动完成 set_contextKey“对象不支持此属性或方法”
我在使用 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 函数上引发错误。谁能解释一下我在这里做错了什么......
I am facing a problem while setting the context key from the client side using jquery and javascript. It is unable to find the function set_contextKey of AutoCompleteExtender of ASP.Net.
Here is my HTML for textbox and 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>
and the jquery on change of a dropdownlist is:
function ddlStore_onchange() {
$('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
}
It is throwing the error on set_contextKey function. Can anybody explain what I am doing wrong here...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现将行
$('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
替换为此行
< code>$find('acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
解决了该问题。不知道具体原因,有人可以帮忙吗?
I found out that replacing the line
$('#acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
with this line
$find('acExt').set_contextKey($('#<%= ddlStore.ClientID %>').val());
resolved the issue. Don't know why exactly, can anybody help on this ?
因此,第一个不起作用的原因实际上有两个问题:
使用asp.net ajax工具包中的
$find()
扩展对象并添加诸如.set_contextKey之类的方法属性
代码>.在相同的对象上使用 jquery 选择器将不起作用。此外,
#acExt
选择器暗示客户端 ID 标记“acExt”。 asp.net (< 4.0) 将为实际客户端 ID 添加长前缀。如果要在 jQuery 中选择 asp.net 服务器标记,请使用 property/endswith 选择器
$([id$='serverID'])
代替。So there are really 2 problems for why the first didn't work:
Using
$find()
from asp.net ajax toolkit extends objects and adds method properties like.set_contextKey
. Using jquery selectors on the same objects will not work.In addition, the
#acExt
selector implies client-side id tag "acExt". asp.net (< 4.0) will add a long prefix to the actual client side IDs.If you want to select asp.net server tags in jQuery, use the property/endswith selector
$([id$='serverID'])
instead.