2012-07-09 44 views
0

我的jquery ajax调用了我的codebehing静态WebMethod,并使用System.Web.Script.Serialization.JavaScriptSerializer来获取JSON对象,输出结果如下所示。将JSON对象绑定到asp.net使用javascript的gridview控件

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

我的GridView其中有产品编号,类别,产品,价格列(asp.net控制)。我应该使用JavaScript将这个json对象绑定到gridview。

我甚至不知道如何申请循环上述JSON字符串。请在这里显示一些信息。

回答

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标记

0

你不能做到这一点与默认的asp.net格,结账jQGrid对JSON-基于网格

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循环遍历产品列表。您也可以使用List作为数据源来绑定您的控件。