簡體   English   中英

如何在自動完成列表中顯示不同的項目?

[英]How do I display distinct items in the autocomplete list?

如何在自動完成列表中顯示不同的項目? 我不希望重復項出現在列表中。 我正在從 XML 文件中讀取數據。

這是我的 web 服務代碼:

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
     
    public class WebService : System.Web.Services.WebService
    {
        [WebMethod]
        public string[] GetItemsList(string prefixText, int count)
        {
            List<string> suggestions = new List<string>();
            using (XmlTextReader reader = new XmlTextReader(HttpContext.Current.Server.MapPath("flightdata3.xml")))
            {
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "departurelocation")
                    {
                        string itemName = reader.ReadInnerXml();
                        if (itemName.StartsWith(prefixText, StringComparison.InvariantCultureIgnoreCase))
                        {
                            suggestions.Add(itemName);
     
                            if (suggestions.Count == count) break;
                        }
                    }

                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "destinationlocation")
                    {
                        string itemName = reader.ReadInnerXml();
                        if (itemName.StartsWith(prefixText, StringComparison.InvariantCultureIgnoreCase))
                        {
                            suggestions.Add(itemName);

                            if (suggestions.Count == count) break;
                        }
                    }

                }
            }
            return suggestions.ToArray();
        }
    }

為了保證計數,您必須在添加它們之前檢查不同的項目:

if(!suggestions.Contains(itemName))
  suggestions.Add(itemName);

否則,只有一個建議,您最終會遇到最壞的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM