Asp.net_jquery で Jquery Ajax を使用して DataTable を送受信するコード

WBOY
リリース: 2016-05-16 18:19:47
オリジナル
1121 人が閲覧しました

次に、サーバーは GridView を DataTable に分解し、DataTable に行を追加し、GridView にバインドして、クライアントに送り返します。
もっと簡単にできないでしょうか?
Ajax データを使用してデータをリクエストする場合、通常は情報が少ない String などの単純な形式になります。もちろん、XML を要求することもできますが、XML データは非常に冗長であり、処理のためにクライアントに送信するのは json よりもはるかに面倒です。
もっとシンプルにできないでしょうか?
DataTable 型と JSON 型を相互に簡単に変換できれば、上記の問題は簡単に解決できます。
利点: 1) 不要なポストバックを回避します。
2) 非同期リクエスト データのサイズを合理化します。
3) データ量が大きい場合の退屈なデータ送受信の問題を解決します。
メリットがたくさんあるので、コードを見てみましょう。
フロントエンド コード:

コードをコピー コードは次のとおりです:

< ;html xmlns=" http://www.w3.org/1999/xhtml">

;script type="text/javascript" src="js/jquery-1.4.2.min.js">



;
;/html> ;


バックエンド コード:
///




コードをコピー


次のようにコードします:

/// When the page loads
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
//Determine whether to request asynchronously
if (Request.QueryString[ "ajax"] == "1")
{
ProcessRequest();
}
}
///
/// Handling asynchronous requests
///

private void ProcessRequest()
{
Response.ContentType = "text/html";
string json = Request.Form["json"];
//Deserialize DataTable
DataTable newdtb = Json2Dtb(json);
//Serialize DataTable to JSON
string back = Dtb2Json(newdtb);
Response.Write(back);
Response.End();
}
///
/// DataTable to Json
///

/// < ;param name="dtb">
///
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary drow = new Dictionary( );
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow) ;
}
return jss.Serialize(dic);
}
///
/// Json to DataTable
///

///
///
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize(json);
DataTable dtb = new DataTable();
if (dic.Count > 0)
{
foreach (Dictionary drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow .Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(row);
}
}
return dtb;
}

Attached is another download file. You can download it if you find it useful.
json.zip
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート