![](/img/trans.png)
[英]AjaxControlToolkit AutoCompleteExtender not working in IIS
[英]OnTextChanged not working when used with AutoCompleteExtender
我有一个文本框,如下所示:
Search:<asp:TextBox runat="server" ID="txtSearchCompany" AutoPostBack="true" OnTextChanged="txtSearchCompany_TextChanged"></asp:TextBox>
我也有一个与文本框链接的AutoCompleteExtender
,如下所示:
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers"
MinimumPrefixLength="2"
CompletionInterval="100" EnableCaching="false" CompletionSetCount="10"
TargetControlID="txtSearchCompany"
ID="AutoCompleteExtender1" runat="server"
CompletionListElementID="autocompleteDropDownPanel"
>
</cc1:AutoCompleteExtender>
当我从“ AutoComplete
列表”中选择某项时,它不会触发onTextChanged
事件。 但是,如果我在文本框中键入内容,但未从“ AutoComplete
列表中选择一个值,则会触发onTextChanged
。
有人可以告诉我这是怎么回事吗?
谢谢
据我了解的自动完成逻辑和Textbox控件,它们都无法像您期望的那样一起工作,因为OnTextChanged事件仅在文本框中也键入/更改了某些内容时才触发。 尽管从自动填充下拉菜单中选择了其他值,但此事件无法正常工作。
有此链接,不完全精确,但也指向同一方向。 检查一下。
可能有一些解决方法,当您从下拉列表中选择一个值时,可以通过该方法触发事件。
您可以尝试在JavaScript / jQuery中编写ajax事件,这将在服务器上为此触发一个事件,此后,您可以在服务器上执行逻辑并通过脚本返回数据作为响应。
以这个为例:
这是示例代码:
function autocomplete() {
$('.control').autocomplete({
source: function (request, response) {
// ajax code to perform textChange logic
},
minLength: 1,
change: function (event, ui) { SaveData(); }
});
}
希望这可以帮助。
使用客户端脚本中的OnClientItemSelected事件触发TextChanged事件
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers"
MinimumPrefixLength="2"
CompletionInterval="100"
EnableCaching="false"
CompletionSetCount="10"
TargetControlID="txtSearchCompany"
ID="AutoCompleteExtender1" runat="server"
CompletionListElementID="autocompleteDropDownPanel"
OnClientItemSelected="DoTextChangedPostBack" >
</cc1:AutoCompleteExtender>
<script type="text/javascript" language="javascript">
function DoTextChangedPostBack(source, eventArgs) {
var hfield = $get('<%=txtSearchCompany.ClientID%>');
hfield.value = eventArgs.get_value();
__doPostBack("<%=txtSearchCompany.ID%>", "TextChanged");
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.