1

我的 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());
}
4

0 回答 0