我有一个带有 AutoCompleteExtender 的文本框,而不是使用 Web 服务,我只是在代码后面有一个方法,它从 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>