Web サービスを使用する代わりに、AutoCompleteExtender を備えたテキスト ボックスがあります。xml から文字列名のリストを取得するメソッドがコード ビハインドにあるだけです。これで、テキスト ボックスで開始するたびに、AutoCompleteExtender が 500 個すべての名前とともに表示されます。順序もありません (たとえば、「Riha」と入力して「Rihana」と入力し始めると、「Riha」で始まる文字列のみが表示されると思われますが、500 個すべてが表示されます。 CompletionSetCount="5" を設定しますが、うまくいきません。これに対する簡単な修正はありますか?
コードのこの部分は適切に機能していると思います...
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetNames(string prefixText, int count)
{
XmlDocument xmlArtist = new XmlDocument();
xmlArtist.Load(string.Format(" http://ws.audioscrobbler.com/2.0/?method=chart.gettopartists&api_key={0}&limit=500", key));
List<string> topartists = new List<string>();
foreach (XmlNode node in xmlArtist.SelectNodes("lfm/artists/artist"))
{
topartists.Add(node.SelectSingleNode("name").InnerText.ToString());
}
return topartists;
}
ここに.aspxコードがあります
<asp:TextBox ID="txtEnterBand" runat="server" CssClass="txtbox" Width="400px" > </asp:TextBox>
<asp:AutoCompleteExtender ID="txtEnterBand_AutoCompleteExtender" runat="server" TargetControlID="txtEnterBand" ServiceMethod="GetNames" UseContextKey="true" ServicePath="" MinimumPrefixLength="1" CompletionSetCount="5"></asp:AutoCompleteExtender>