当前位置:编程学习 > C#/ASP.NET >>

AJAX 控件的 AutoComplete 能输入多个值吗

使用了AJAX 控件的 AutoComplete Extender控件,成功的实现了在TextBox里输入一些内容后自动提示的功能。web service代码如下:
[WebMethod]
    public string[] GetCompletionList(string prefixText)
    {
        SqlConnection _sqlConnection = new SqlConnection();
        _sqlConnection.ConnectionString = ConfigurationManager.AppSettings["Conn"];
        _sqlConnection.Open();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = new SqlCommand("SELECT Words FROM [AutoComplete] where Words like '" + prefixText + "%'", _sqlConnection);
        DataSet ds = new DataSet();
        da.Fill(ds);

        List<string> items = new List<string>();
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            items.Add(dr["Words"].ToString());
        }
        return items.ToArray();
    }    
}

现在的问题是,是否能输入一个值后用逗号或什么符号分开,然后输入第2个值也出自动提示。就好象发邮件时在TextBox里输入多个邮箱地址那样。

例如开始输入aaaa会自动提示。然后在aaaa后面输入逗号,再输入bb也会自动提示bb开头的内容。能实现这个功能吗? --------------------编程问答-------------------- 100%能实现

跟这个控件毫无关系。
关键字用逗号分隔成数组,然后拼接成
Words like '" + 关键字1 + "%'" or Words like '" + 关键字2 + "%'" or Words like '" + 关键字3 + "%'" --------------------编程问答--------------------
你想表达的是分词搜索吗?
http://download.csdn.net/detail/majia1205/2484004 --------------------编程问答-------------------- public string[] GetCompletionList(string prefixText)
  {
   if(prefixText!=null){prefixText=prefixText.spilt(',').Last(); }

  SqlConnection _sqlConnection = new SqlConnection();
  _sqlConnection.ConnectionString = ConfigurationManager.AppSettings["Conn"];
  _sqlConnection.Open();
  SqlDataAdapter da = new SqlDataAdapter();
  da.SelectCommand = new SqlCommand("SELECT Words FROM [AutoComplete] where Words like '" + prefixText + "%'", _sqlConnection);
  DataSet ds = new DataSet();
  da.Fill(ds);

  List<string> items = new List<string>();
  foreach (DataRow dr in ds.Tables[0].Rows)
  {
  items.Add(dr["Words"].ToString());
  }
  return items.ToArray();
  }   
} --------------------编程问答-------------------- 用了jhl52771的方法,加上了if(prefixText!=null){prefixText=prefixText.spilt(',').Last(); }
不过这句的prefixText.spilt拼写有错,应该是prefixText.Split

这样之后有个问题,例如输入了aaa,之后,会继续提示,我选了提示框里的bbb之后,前面的aaa,没有了,整个TEXTBOX的内容变为bbb了。我是想要得到aaa,bbb的

这个有办法解决吗 --------------------编程问答-------------------- 请问您这个问题解决了吗?如果解决了内高速我吗,我都找了一周的办法了,也没有解决
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,