sql >> データベース >  >> RDS >> Sqlserver

データベースを使用した Jquery オートコンプリート

    それは jQuery オートコンプリートの仕組みではありません

    jQuery オートコンプリートは、テキスト ボックスに入力されたテキストを、クエリ文字列「term」で指定した場所に自動的に送信します。このように webmethod またはハンドラーでアクセスします

             string input = HttpContext.Current.Request.QueryString["term"];
    

    このようなもの

                  [WebMethod]
    public static List<string> GetAutoCompleteData(string Car)
    {
        string input = HttpContext.Current.Request.QueryString["term"];
        List<string> result = new List<string>();
        using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CarsConnectionString"].ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@SearchText", input);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    result.Add(dr["Car"].ToString());
                }
                return result;
            }
        }
    }
    

    これは .aspx ページに挿入されます

        $(".ui-autocomplete").autocomplete({
            source: "Admin_home.aspx/GetAutoCompleteData",
            select: function (event, ui) { }
          });
    

    編集:

    私は実際に Web メソッドでこれを行ったことはありません。通常はハンドラー .ashx を使用しますが、これでも問題なく動作するはずです。

    すべての変更が完了したら、サイトをデバッグ モードで実行し、テキスト ボックスに入力を開始して f12 に合わせ、これが引き起こしているトラフィックを監視します。「abc」と入力すると、次のようになります。

    Admin_home.aspx/GetAutoCompleteData?term=abc

    次に、応答を少しいじる必要があるかもしれません。デフォルトでは、.net はクライアント側への応答に「d :....」を追加しますが、それを見て、それに応じて調整することができます

    別の編集:

             <asp:Textbox ID="query" class="ui.autocomplete">
    

    あなたがjqueryに入れたものではありません

              $(".ui-autocomplete").autocomplete({
    

    である必要があります
             <asp:Textbox ID="query" class="ui-autocomplete">
    

    まだ、別の編集:

    一重引用符がありません

            using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%", con))
    

    に置き換えます
             using (SqlCommand cmd = new SqlCommand("select DISTINCT Car from T_Car where Car like '%'+ @SearchText +'%' ", con))
    


    1. PostgresDBサイズコマンド

    2. Oracle:オブジェクトタイプ列のデフォルト値を指定する

    3. Pythonを使用してPostgreSQLOIDを翻訳するにはどうすればよいですか

    4. AWSRDSMySql-「公開」を設定した後にアクセスを許可する方法