0

私のjqueryajaxは私のcodebehingstaticWebMethodを呼び出し、 System.Web.Script.Serialization.JavaScriptSerializerJSONオブジェクトを取得するために使用しました。出力は次のようになります。

[{"ProductId":"9","Category":"TV","Products":"Discovery","Price":15.97},{"ProductId":"25","Category":"TV","Products":"HBO","Price":15.97}]

ProductId、Category、Products、Price列を持つGridView(asp.netコントロール)があります。JavaScriptを使用してこのjsonオブジェクトをグリッドビューにバインドする必要があります。

上記のJson文字列にforループを適用する方法すらわかりません。これに光を当ててください。

4

3 に答える 3

1

JSONこのようにデータをループすることができます

var data=[{"ProductId":"9","Category":"TV","Products":"Discovery","Price":15.97},
          {"ProductId":"25","Category":"TV","Products":"HBO","Price":15.97}];

$.each(data,function(index,item){
    alert(item.ProductId);
    alert(item.Category);
}); 

グリッドを置き換えるには、テーブルのHTMLマークアップを作成し、それをDOMに挿入します。

 var itemRow="<table>";  
 $.each(data,function(index,item){
    itemRow+="<tr><td>"+item.ProductId+"</td><td>"+item.Category+"</td></tr>";
 });        
 itemRow+="</table>";  

 $("#divItems").html(itemRow);

作業サンプルhttp://jsfiddle.net/qS7uD/6/

ただし、ASP.NETグリッドイベントは表示用の純粋なHTMLマークアップであるため、この後は取得されません。

于 2012-07-09T17:05:53.973 に答える
0

デフォルトのasp.netグリッドではそれを行うことはできません。jsonベースのグリッドのjQGridをチェックアウトしてください

于 2012-07-09T16:46:15.307 に答える
0

JSONを逆シリアル化するには、同じプロパティを持つクラスを作成し、このようにJavascriptSerilzierを使用する必要があります。

public class Product
{
  public int ProductId{get;set;}
  public string Category{get;set;} 
  public string Products{get;set;} 
  public decimal Price{get;set;}
} 


myProducts List<Product> = new JavaScriptSerializer().Deserialize<List<Project>>(myJson);

次に、単純なfor-eachループを使用して製品リストをループできます。リストをデータソースとして使用して、コントロールをバインドすることもできます。

于 2012-07-09T17:01:10.237 に答える