【问题标题】:Multiple columns and results on jQuery autocomplete plugin?jQuery自动完成插件上有多个列和结果?
【发布时间】:2012-07-31 23:22:40
【问题描述】:

我正在使用 jQuery 自动完成插件。不是 jQueryUI 自动完成。我似乎找不到关于 jQuery 自动完成的任何好的说明。

有谁知道如何获取多个搜索参数和结果。
IE。用户可以搜索 ID、FNAME、LNAME 并自动完成相应地显示结果?

所以搜索 JON 自动完成返回 JON DOE N41, JONATHAN MILLER Q66

搜索 Q6 自动完成返回 JONATHAN MILLER Q66、MIKE CAMPBELL Q67 等

这是我当前的代码。

ashx 处理程序:

public class Search_CS : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        string prefixText = context.Request.QueryString["q"];
        using (SqlConnection conn = new SqlConnection())
        {
            conn.ConnectionString = ConfigurationManager
                    .ConnectionStrings["Rollup2ConnectionString"].ConnectionString;
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.CommandText = "select NUID from T_USER where " +
                "NUID like @SearchText + '%'";
                cmd.Parameters.AddWithValue("@SearchText", prefixText);
                cmd.Connection = conn;
                StringBuilder sb = new StringBuilder(); 
                conn.Open();
                using (SqlDataReader sdr = cmd.ExecuteReader())
                {
                    while (sdr.Read())
                    {
                        sb.Append(sdr["NUID"])
                            .Append(Environment.NewLine);
                    }
                }
                conn.Close();
                context.Response.Write(sb.ToString()); 
            }
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}

这是我的 HTML:

<script src="Scripts/jquery.autocomplete.js" type="text/javascript"></script>
<link href="Autocomplete/jquery.autocomplete.css" rel="stylesheet" type="text/css" />  

<script type="text/javascript">
    $(document).ready(function() {
        $("#<%=txtSearch.ClientID%>").autocomplete('Autocomplete/Search_CS.ashx', {width: 400, multiple: true, matchContains: true });
    });

</script> 

【问题讨论】:

  • 为了清楚起见,为什么 jQueryUI 自动完成插件不能满足您的需求?
  • 它可以满足我的需要。但问题是我绝对不能让 jQueryUI 自动完成工作。试了几十个教程。似乎没有人愿意为我工作。

标签: c# jquery html visual-studio-2008 autocomplete


【解决方案1】:

这与您的 SQL 查询有关。您需要定位数据库中的这些列并像 NUID 一样搜索所有这些列。

cmd.CommandText = "select NUID, FNAME, LNAME from T_USER where NUID like @SearchText + '%' OR FNAME like @SearchText + '%' OR LNAME like @SearchText + '%'";

【讨论】:

  • 好的。对于结果,我将如何处理?会不会类似于using (SqlDataReader sdr = cmd.ExecuteReader()) { while (sdr.Read()) { sb.Append(sdr["NUID, FNAME, LNAME"]) .Append(Environment.NewLine); } } conn.Close();
  • 是的,您需要将所有返回的列值附加到一个字符串以进行输出。
  • 谢谢我知道了。如果你有时间,还有两件事。当他们选择它并按回车时,它是否可能只采用 NUID 值?我似乎无法做到这一点。每个参数后面还有一个很长的空格。即 g66 (20spaces) Jonathan (20spaces) Miller 有没有办法摆脱这个?
  • 您可以通过 HTML 和 Javascript 做到这一点。如果您的自动完成功能正在构建一个带有
    • ,您可以编写一个函数,在单击时填充目标搜索框。你的 li 看起来像这样:&lt;li onclick="fill( 'NUID' );"&gt;。 javascript 函数(因为您使用的是 jquery)可能看起来像这样:function fill(thisValue) { $('#searchbox').val(thisValue); } 查看stackoverflow.com/questions/6442421/… 的间距问题。
猜你喜欢
相关资源
最近更新 更多
热门标签