使用javascript将JSON对象绑定到asp.net gridview控件

时间:2012-07-09 16:38:26

标签: javascript jquery asp.net html json

我的jquery ajax称为我的代码标记静态WebMethod,我使用System.Web.Script.Serialization.JavaScriptSerializer来获取JSON对象,输出就是这样。

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

我有GridView(asp.net控件),它有ProductId,Category,Products,Price列。我应该使用JavaScript将这个json对象绑定到gridview。

我甚至不知道如何在上面的Json字符串上申请循环。请详细说明。

3 个答案:

答案 0 :(得分: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);
}); 

要替换Grid,您可以为表构建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 Grid Events,因为它是显示的纯HTML标记

答案 1 :(得分:0)

您无法使用默认的asp.net网格,对基于json的网格结帐jQGrid

答案 2 :(得分: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作为数据源来绑定控件。