ページ要求にクエリ文字列パラメーターが存在する場合、Page_Load でサーバー上のデータベースにクエリを実行し、結果をクライアントに返します。クエリ文字列パラメーターのチェックを実行して DB にクエリを実行できますが、データをページに返す方法と、JavaScript 側でそのデータにアクセスする方法を教えてください。
理想的には、オブジェクト構造の JSON を返し、それらの配列を返します。
はい、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 で直接参照して、必要な処理を行うことができます。
お役に立てれば。