1

我正在使用 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> 
4

1 回答 1

1

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

cmd.CommandText = "select NUID, FNAME, LNAME from T_USER where NUID like @SearchText + '%' OR FNAME like @SearchText + '%' OR LNAME like @SearchText + '%'";
于 2012-08-02T22:49:30.290 回答