ASP.NET AJAXコールWebサービス、戻りJSON形式の文字列

最近、同僚がASP.NET AJAXコールWebサービスと尋ね行うDataTableを返すことができますか?今まっすぐAJAXで非同期の結果を達成するために、作るされ、その多く楽屋会社のプロジェクトは、同社の練習は、Webサービスを使用することで解析のためにJavaScriptにフロントにリストを返し、解析プロセスは、多くのプログラムやパフォーマンスを調整しましたので、質問があります直接戻った場合のDataTableどのように素晴らしいです!


最近、同僚がASP.NET AJAXコールWebサービスと尋ね行うDataTableを返すことができますか?

同社は現在、非同期の効果を達成するために、すぐにそれらの多くとしてAJAXと背景を投影し、

同社の練習では、解析のためのフロントエンドJavaScriptに戻るためにリストWebサービスを使用することです

解析プロセスは、多くのプログラムやパフォーマンスチューニングを取ったので、問題は、彼らが直接のDataTableより素晴らしい返すことができますされている場合!

はい、DataTableのを返すようにすることは、実際に行われる方法がある実際にASP.NET 2.0 AJAX先物を使用することが可能です、

しかし、解決策はまだCTPであり、それが最終バージョンをリリース、またはドレインアップを下るだろうというとき、長い時間をかけて、私は知らないのですか?

その後、私は、それはJSONを使用することで、データテーブルを返すために「のような感じ」を達成することができます解決策を考え出しました

本明細書で使用する場合、解決すべきC#クラスをパラメータとしてデータテーブル方法のこのクラスに直接渡すことができ、

、メソッドは、JSON形式の文字列には、このDataTableの洗練をお教えしますので、Webサービスの戻り値の型は文字列型であります

C#クラス(DT2JSON)次のように:

001 ... System.Dataを使用しました。
System.Textのを使用して002。
003
004パブリッククラスDT2JSON
005 ... {
006 /////
JSON形式の文字列(指定しないクエリフィールド)にデータテーブル変換007 ///
008 ///使用するJavaScript:OBJ.Table [0] .Row [0] .Cell [0] .DATA
009 ///

010 /// のDataTable
011 /// DataTableをJSON形式の内容を返します
012パブリック静的文字列JSON_DataTable(データテーブルDT)
013 ... {
014のStringBuilder JsonString =新規のStringBuilder();
015 JsonString.Append( "... { "");
016 JsonString.Append( ""表":[... {"
043 JsonString.Append("]}]});
044リターンJsonString.ToString()。
045})。
017 JsonString.Append( ""行":[")。
(; iがdt.Rows.Countを<I ++は、I = 0の整数)のための018
019 ... {
020 JsonString.Append(」... { "
ほか038
039 ... {
040 JsonString.Append("]}) ;
041}、「)。

(; J <dt.Columns.Count; INT J = 0 J ++)のための022
023 ... {
024 IF(J <dt.Columns.Count - 1)
025 ... {
026 JsonString.Append(」... { "" + ""値":"」+ dt.Rows [I] [J] .ToString()+ ""})。
027}
そう028 IF(J == dt.Columns.Count - 1)
029 ... {
030 JsonString.Append( "... { "" + ""値":"" + dt.Rows [I] [ J] .ToString()+ ""})。
031}
032}
033
034 IF(I == dt.Rows.Count - 1)
035 ...


042}
046
047 /////
(クエリーフィールドを指定することができる)JSON形式の文字列に変換するデータテーブル048 ///
049 ///使用するJavaScript:OBJ.Data [0] .nameの
050 ///

051 /// のDataTable
052 /// DataTableをJSON形式の内容を返します
053パブリック静的文字列CreateJsonParameters(データテーブルDT)
054 ... {
055のStringBuilder JsonString =新規のStringBuilder();
056 IF(DT = NULL && dt.Rows.Count> 0!)
057 ... {
058 JsonString.Append(」... { "
084 JsonString.Append("]});
085リターンJsonString.ToString()。
086});
059 JsonString.Append( ""データ"[ ");
のための060(iは0 = int型、iがdt.Rows.Countを<; I ++)は
061 ... {
062 JsonString.Append(" ... { "
他079
080 ... {
081 JsonString。
082}、「);
063(INT J = 0; J <dt.Columns.Count; J ++)
064 ... {
065 IF(J <dt.Columns.Count - 1)
066 ... {
067 JsonString。 ( "+ "" "+ dt.Rows [I] [J] .ToString()+ ""、" """ + dt.Columns [J] .ColumnName.ToString()+ "を");追加
068}
069そうであれば(J == dt.Columns.Count - 1)
070 ... {
071 JsonString.Append( "" "+ dt.Columns [J] .ColumnName.ToString()+ "":" + ""」 + dt.Rows [I] [J] .ToString()+ "" ")。
072}
073}
074
075 IF(I == dt.Rows.Count - 1)
076 ... {
077 JsonString.Append( "});
078}"
083}」
ほか087
088 ... {
089戻りNULL;
090}
091}
092
093 /////
(クエリーフィールドを指定することができる)JSON形式の文字列に変換するデータテーブル094 ///
095 /// JavaScriptを:. OBJ [データテーブル名]に[0] .nameの
096 ///

097 /// DataTableの名称
098 /// のDataTable
099 /// DataTableをJSON形式の内容を返します
100パブリック静的文字列CreateJsonParameters(ストリングdtName、データテーブルDT)
101 ... {
102のStringBuilder JsonString =新規のStringBuilder();
103 IF(DT = NULL && dt.Rows.Count> 0!)
104 ... {
105 JsonString.Append(」... { "
131 JsonString.Append("]});
132リターンJsonString.ToString()。
133});
106 JsonString.AppendFormat( "..." {0} ":["、dtName.Trim());
107(I 0 = int型、iがdt.Rows.Countを<; I ++)は
108 .. {
109 JsonString.Append( "... {"
126そう
127 ... {
128 JsonString.Append( "});
129}、")。
110のための(int型J = 0; J <dt.Columns.Count; J ++)
111 ... {
112 IF(J <dt.Columns.Count - 1)
113 ... {
114 JsonString.Append( ""」+ dt.Columns [J] .ColumnName.ToString()+ "": "+ """ + dt.Rows [I] [J] .ToString()+ ""、 ");
115}
そう116 IF(J == dt.Columns.Count - 1)
117 ... {
118 JsonString.Append( "" "+ dt.Columns [J] .ColumnName.ToString()+ "":" + " "" + dtの。

120}
121
122 IF(I == dt.Rows.Count - 1)
123 ... {
124 JsonString.Append( "});
125}"
130}」
ほか134
135 ... {
136戻りNULL;
137}
138}
139}

Webサービスメソッドを使用します:

01 [WebMethod属性]
02公衆ストリングGetDataTable()
03 ... {
04データテーブルDT =新しいデータテーブル()。
05
06 dt.Columns.Add(新規のDataColumn( "名前"、typeof演算(文字列)));
07 dt.Columns.Add(新規のDataColumn( "姓"、typeof演算(文字列)));
08 dt.Columns.Add(新規のDataColumn( "電子メール"、typeof演算(文字列)));
09
10 dt.Rows.Add( "何"、 "若瑄"、 "[email protected]")。
11 dt.Rows.Add( "毛"、 "俊杰"、 "[email protected]")。
12
13リターンDT2JSON.JSON_DataTable(DT)。
14}

ASPX JavaScriptを使用し、ここでのjQueryを採用するアプローチは、JavaScriptのアプローチは似ている、ある
使い方を呼び出すにはC#クラスをパラメータ化することができ、私は中にノートを書く必要があります。

ここでは3つのJSの導入はファイルの
最初のものはメインのjQueryのある
第二は、VS 2008 SP1のサポートjQueryのインテリセンスさせることです
(ダウンロード)、第三は、jQueryのプラグインですJSONをパースするためにそれを使用します

01     
02     
03     
04     

このように、あなたは、単にJSONを使用して、ページ間のデータ転送は、実際には非常に便利ですが、JSONデータを呼び出すことができ、

それはJSONが高速であることを言及する価値がある、それは、Array、およびXMLのようにそれを感じていますか?JSONが、速く遅くビットよりも、

非常に強力な柳だろうなデータフォーマットを表示することができます!

オリジナル:ビッグボックス  ASP.NET AJAXコールWebサービス、戻りJSONのフォーマット文字列


おすすめ

転載: www.cnblogs.com/petewell/p/11516602.html