我的 CompletionInterval 是 100,MinimumPrefixLength 是 1。有时在输入一个我知道有完成的字母后,比如 'a',大约一秒后,可能更短(但 1 秒是指定时间),初始的 'a' 消失。当我键入另一个时,我会得到一个完成列表?有谁知道这里发生了什么?我正在使用 AjaxControlToolkit 的 v7.0607,它带来了 HtmlAgilityPack 的 v1.4.6。
我AutoCompleteExtender
和同事看起来像这样:
<asp:HiddenField runat="server" ClientIDMode="Static" ID="autoCompleteHidden" OnValueChanged="autoCompleteHidden_ValueChanged" />
<asp:TextBox ID="txtSearchField" runat="server" Width="200px"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtSearchField"
ServicePath="~/AutoComplete.asmx" ServiceMethod="GetVisitors" Enabled="False" CompletionInterval="100"
MinimumPrefixLength="1" CompletionSetCount="30" OnClientItemSelected="OnAutoCompleteSelected"
CompletionListCssClass="CompletionList" CompletionListItemCssClass="CompletionListItem"
CompletionListHighlightedItemCssClass="CompletionListHighlightedItem">
</ajaxToolkit:AutoCompleteExtender>
注意: Enabled
设置为True
在使用此控制组之前和False
之后设置。那不是问题所在。
下面随附的函数脚本可以正常工作。
<script type="text/javascript">
function OnAutoCompleteSelected(source, eventArgs) {
$("#autoCompleteHidden").val(eventArgs._text);
__doPostBack("autoCompleteHidden", "");
}
</script>
该脚本触发以下代码隐藏处理程序,该处理程序获取所选访问者的详细信息。它也可以正常工作:
protected void autoCompleteHidden_ValueChanged(object sender, EventArgs e)
{
var myVisitorObj = new XTime.OL.VisitorObj();
myVisitorObj = XTime.BL.myVisitor.SelectVisitorByFullName(autoCompleteHidden.Value);
if (myVisitorObj.MST_SQ != 0)
{
XTime.XTimeVariables.VisitorObj = myVisitorObj;
}
ddlSearchBy.SelectedIndex = 0;
AutoCompleteExtender1.Enabled = false;
//Need to reload page for Sessions variable to change
Response.Redirect(Request.Url.ToString());
}