私の 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
設定され後に設定されます。それは問題ではありません。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());
}