1

「jQuery Autocomplete と ASP.NET」に指定されたコードを実装しようとしていますが、subsonic を使用してデータベースをクエリしているため、統合できません。

C# を使用して、asp.net で sqldatabase にクエリを実行し、クエリ結果を webservice からプラグインにバインドする方法を教えてください。

4

2 に答える 2

2

これは非常に簡単な作業です。キャッチは、jQueryオートコンプリートエクステンダーが値の配列を期待していることです。これは、ASMX Webサービスからの標準XML結果を解析して、jQueryオートコンプリートエクステンダーで使用する方法の例です。

ASP.NETはIDを書き換えるのが好きなので、ClientIDを渡して動的IDを取得できます。

    $("#<%= TextBox1.ClientID %>").autocomplete("/Demo/WebSvc.asmx/SuggestCustomers", {
        parse: function(data) {
            var parsed = [];

            $(data).find("string").each(function() {
                parsed[parsed.length] = {
                    data: [$(this).text()],
                    value: $(this).text(),
                    result: [$(this).text()]
                };
            });
            return parsed;
        },
        dataType: "xml"
    });

関連するWebサービスは次のようになります。Webサービスの[ScriptService]属性のコメントを外すことを忘れないでください。

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebSvc: WebService
{
    [WebMethod]
    public string[] SuggestedCustomers(string q)
    {
        // Do Query

        // Add items into string array
        List<string> items = new List<string>();
        while (dr.Read())
        {
            items.Add(dr[0].ToString());
        }

        // Return array
        return items.ToArray();
    }

}
于 2009-05-27T18:54:45.677 に答える
-1

私はasp.netに堪能ではありませんが、基本的にほとんどのWebコーディングの質問と同様に、これには問題をより小さなものに分割することが含まれます.

アーキテクチャの観点から、コンポーネントには次のものが含まれる場合があります...

  • db などを潜在的に使用して、クエリに応答または結果を生成するサービス層。
  • 上記の完全なサービスを使用して、browesrr が簡単に理解できる形式 (JSON など) でデータを返す Web コンポーネントまたはサービス エントリ ポイント。
  • 上のすぐ上のポイントで定義されたエンドポイントを呼び出すjqueryを使用するJavaScript。
  • 上記のすべてのコンポーネントの単体テストを作成します。失敗した場合のテストを忘れないでください。
于 2009-01-19T10:52:42.920 に答える