我的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字符串上申请循环。请详细说明。
答案 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作为数据源来绑定控件。