第一个字母在Ajax Toolkit AutoCompleteExtender上消失

时间:2013-07-15 13:38:33

标签: asp.net asp.net-mvc-4 asp.net-ajax ajaxcontroltoolkit autocompleteextender

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

0 个答案:

没有答案