1

私の CompletionInterval は 100 で、MinimumPrefixLength は 1 です。「a」のように、補完があることがわかっている 1 文字を入力した後、約 1 秒後 (ただし、1 秒は指定された時間です)、最初の「a」が消えることがあります。別のものを入力すると、補完のリストが表示されますか? ここで何が起こっているか知っている人はいますか?私は、HtmlAgilityPack の v1.4.6 をもたらす AjaxControlToolkit の v7.0607 を使用しています。

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設定され後に設定されます。それは問題ではありません。TrueFalse

以下の付属の関数スクリプトは正常に動作します。

<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