1

ページ要求にクエリ文字列パラメーターが存在する場合、Page_Load でサーバー上のデータベースにクエリを実行し、結果をクライアントに返します。クエリ文字列パラメーターのチェックを実行して DB にクエリを実行できますが、データをページに返す方法と、JavaScript 側でそのデータにアクセスする方法を教えてください。

理想的には、オブジェクト構造の JSON を返し、それらの配列を返します。

4

1 に答える 1

2

はい、JSON を返すことが最善の選択肢です。データベースのクエリ方法がわかりません (LINQ または ADO.NET DataTables などを使用していますか)

送信したいタイプのカスタム オブジェクトがない場合は、作成することをお勧めします。次に、それらの配列を取得する必要があります。

例:

public class Person {
   string Name { get; set; }
   int Age { get; set; }
}

Person[] pArr = new Person[5];

次に、このようなサードパーティ ライブラリを使用して、その配列の文字列表現を JSON で作成できます。

string json = JsonConvert.SerializeObject(product);

次に、その文字列を Response オブジェクトに書き込みjson、ページの Render メソッドをオーバーライドして、クライアントに送信されるようにします。

// Don't expect this code to work as it is, but take this as a guidance
Response.Clear();
Response.Write(json);
Response.Close();

クライアント側では、jQuery ライブラリを使用してページにリクエストを送信し、JSON レスポンスを処理します。

$.getJSON('url', function(data) {
  //process data
});

これに AJAX リクエストを使用したくない場合の私の提案は次のとおりです。

page_load で通常行うようにオブジェクトを使用し、上記で説明したように JSON 文字列に変換します。

次に、ClientScriptManager を使用して、ロード時にクライアント側で JavaScript 変数を作成します。

ClientScript.RegisterClientScriptBlock(typeof(Page), "unique_key", "var myObjectList = " + json, true);

この後、ページが読み込まれると、別の AJAX 呼び出しを行わなくても、オブジェクトのリストを含む「myObjectList」という名前の変数が作成されます。

その変数を JavaScript で直接参照して、必要な処理を行うことができます。

お役に立てれば。

于 2012-12-01T13:32:02.957 に答える