オートコンプリートにこのメソッドを使用しているのは初めてです。数時間の調査の後、なんとか「機能させる」ことができました。理由はまだわかりませんが、メソッドの動作がおかしいので、オートコンプリートのオプションのリストは、正しい一致に「ホーム」ではなく、テキストボックスの下の最初の行にとどまります。
宣言する
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="ac" %>
これは私が使用しているタグですiaspx
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnablePartialRendering="true">
</asp:ScriptManager>
<asp:TextBox ID="TBX_theMonthInsert" runat="server" Width="60" />
ajax部分
<ac:AutoCompleteExtender ID="AutoCompleteExtender1" EnableCaching="true"
BehaviorID="AutoCompleteCities" TargetControlID="TBX_theMonthInsert"
ServiceMethod="GenerateMonthNames" MinimumPrefixLength="2"
ContextKey="GenerateMonthNames" CompletionSetCount="2" runat="server"
FirstRowSelected="true" CompletionInterval="350" ShowOnlyCurrentWordInCompletionListItem="true">
</ac:AutoCompleteExtender>
背後にあるコード
[ScriptMethod()]
[WebMethod]
public static string[] GenerateMonthNames(string prefixText, int count, string contextKey)
{
List<string> items = new List<string>();
items.Add("Oliver");
items.Add("Olsen");
items.Add("learns");
items.Add("how");
items.Add("change");
items.Add("world");
items.Add("engaging");
return items.ToArray();
}