【问题标题】:Autocomplete extender in Ajax Toolkit and JQuery limiting to "Starts with"Ajax Toolkit 和 JQuery 中的自动完成扩展器限制为“开始于”
【发布时间】:2009-07-16 18:35:07
【问题描述】:

AutoComplete 实现有很多种风格,我首先做了一个非常健壮的 WPF 实现,每个条目都有关键字,所以在搜索员工时,输入名字或姓氏并不重要,结果返回类似于 Google Suggest。

我发现 JQquery 自动完成和 ASP.Net 自动完成扩展器的限制是没有关键字搜索,或者包含功能,它只是使用“Startswith”类型搜索。

例如,要搜索“Mark Adams”作为员工姓名,您必须输入 M、a、r 等。如果您输入 A、d 等,则不会返回任何结果。

有人知道这方面的计划吗?现在有什么东西吗?

【问题讨论】:

  • 检查 Ajax ToolKit 的编辑。

标签: asp.net jquery ajax autocomplete


【解决方案1】:

你一定错过了像

这样的 jquery 自动完成选项
matchContains:true

它完全符合您的要求。当您键入 A,d 等时,它将匹配 Mark Adams。

编辑

对于 ajaxtoolkit AutoCompleteExtender,我担心您在 jquery 中没有任何与 matchContains 等效的选项。但是您可以在服务方法中轻松完成。设置为...

ServiceMethod="GetNameList"

其中 GetNameList 包含如何匹配数据的整个逻辑。例如

public partial class _Default : System.Web.UI.Page {
    [WebMethod]
    public static string[] GetNameList(string prefixText, int count) {
        string sql = String.Format("select name from customers where name like @given_name");

        List<string> nameList = new List<string>();
        using (SqlConnection connection = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=."))
        using (SqlCommand command = new SqlCommand(sql, connection)) {
            connection.Open();
            command.Parameters.AddWithValue("@given_name", "%"+prefixText"%");
            using (SqlDataReader reader = command.ExecuteReader()) {
                while (reader.Read()) {
                    nameList.Add(reader.GetString(0));
                }
            }
        }

        return nameList.ToArray();
    }
}

下面是进行匹配的代码行。

command.Parameters.AddWithValue("@given_name", "%"+prefixText"%");

【讨论】:

  • 谢谢harshh,ajaxtoolkit AutoCompleteExtender 有什么等价物吗?
猜你喜欢
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 2013-09-15
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
相关资源
最近更新 更多