1

jQuery オートコンプリート プラグインを使用しています。jQueryUI オートコンプリートではありません。jQueryオートコンプリートに関する適切な指示が見つからないようです。

複数の検索パラメータと結果を取得する方法を知っている人はいますか?
すなわち。ユーザーは 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 に答える