none
使用AutoCompleteExtender自动匹配TextBox输入 RRS feed

  • 问题

  •  我的代码是:

    aspx页面:

    <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
            <br />
            <br />
            <asp:AutoCompleteExtender  ID="AutoCompleteExtender1" runat="server"
                 ServicePath="~/AutoComplete.asmx"
                 ServiceMethod="GetCityList"
                 MinimumPrefixLength="2" CompletionSetCount="10" EnableCaching="true"
                TargetControlID="TextBox1">
            </asp:AutoCompleteExtender>

    WebService.asmx页面内容:

     [System.Web.Script.Services.ScriptService]

     public string[] GetCityList(string prefixText, int count)
            {

                string[] cityArray = new string[]{
                    "Baotou",
                    "Beihai",
                    "Beijing",
                    "Boao"
                    // ...省略若干
            };
                List<string> findCity = new List<string>(count);
               
                int i = 0; int j = 0;

                while (i < cityArray.Length && j < count)
                {
                    string pre = cityArray[i].Substring(0, prefixText.Length).ToLower();

                    if (pre.Equals(prefixText.ToLower()))
                    {
                        findCity.Add(cityArray[i]);
                        j++;
                    }
                    i++;
                }

                return findCity.ToArray();
            }

    这样写有错误吗?为什么运行TextBox还是没有自动匹配?望指点

    • 已移动 孟宪会Moderator 2010年4月7日 1:59 (发件人:.NET Framework 一般性问题讨论区)
    2010年4月3日 8:14

答案

  • 你好 这里匹配的是字符串起始部分的匹配 所以请检查你输入的字符串在你的 string[] cityArray 中有类似的匹配吗?

    MinimumPrefixLength="2" 同时这里设置后需要输入至少2个字符才会开始匹配

    对于Ajax控件的使用等 建议到asp.net网站提出


    Memory all alone in the moonlight~My Blog in .NET~~~
    2010年4月5日 11:25
    版主