1
WebServiceを使用する代わりに、AutoCompleteExtenderでテキストボックスを使用しています。xmlの文字列名のリストを取得するメソッドがあります。テキストボックス内で開始するたびに、AutoCompleteExtenderに500個の名前がすべて表示されます。たとえば、 "Riha"とタイプして "Rihana"と入力すると、 "Riha"で始まる文字列だけが表示されますが、すべての500がすべての順序で表示されると思います。 CompletionSetCount =「5」が、運を設定していない。これに簡単に修正はありますか?AutoCompleteExtenderは毎回すべての500個のオプションを表示します
私は正常に機能していると考えているコードのこの部分は...
ここ[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>
コードに返される内容を制限してみませんか? foreachの代わりにfor(i = 0; i <5; i ++)を実行しますか?またはそのようなもの? – Prescott
Btw、CompletionSetCountがあなたのWebサービスに渡され、それ自体に何も制限されません – Prescott
私は、AutoCompleteExtenderが自動的にテキストボックス内のwhatsをリストと比較したと考えていました。私はテキストボックスに何を渡し、毎回手動ですべての500人の名前と比較する必要がありますか? –