Jquery JSON到Html表的对象列表?

Jquery JSON到Html表的对象列表?,jquery,json,asp.net-mvc,html-table,Jquery,Json,Asp.net Mvc,Html Table,如果我有一个对象列表 IEnumerable<MyType> myTypes; 如果是这样的话,我是否可以将这个(现在是JSON格式)列表转换成的格式,当它到达客户端时 有没有jQuery插件可以做到这一点 问题是,我还需要以JSON的形式发送大量其他内容,因此生成一个带有PartialView的表并将其嵌入JSON是一个额外的复杂性,我希望避免这种复杂性 确切地说,它不是一个HTML表,但我与Craig Stuntz一起使用它将任何IQueryable作为JSON“导出”。hel

如果我有一个对象列表

IEnumerable<MyType> myTypes;
如果是这样的话,我是否可以将这个(现在是JSON格式)列表转换成
的格式,当它到达客户端时

有没有jQuery插件可以做到这一点


问题是,我还需要以JSON的形式发送大量其他内容,因此生成一个带有PartialView的表并将其嵌入JSON是一个额外的复杂性,我希望避免这种复杂性

确切地说,它不是一个HTML表,但我与Craig Stuntz一起使用它将任何
IQueryable
作为JSON“导出”。helper函数
ToJqGridData
以jqGrid所需的格式发送JSON,因此您的代码非常漂亮整洁:

MyObjectRepository rep = new MyObjectRepository();
var myObjects = from o in rep.SelectAll()
                select new 
                {
                    Prop1 = o.Prop1,
                    Prop2 = o.Prop2
                    ...
                }
return Json(apps.ToJqGridData(page, rows, sidx, null, null), JsonRequestBehavior.AllowGet);
请注意,您还需要更新jqGrids的全局设置,使其与
ToJqGridData
使用的命名约定兼容(我只在母版页中包含此脚本):


确切地说,它不是一个HTML表,但我与Craig Stuntz一起使用它将任何
IQueryable
作为JSON“导出”。helper函数
ToJqGridData
以jqGrid所需的格式发送JSON,因此您的代码非常漂亮整洁:

MyObjectRepository rep = new MyObjectRepository();
var myObjects = from o in rep.SelectAll()
                select new 
                {
                    Prop1 = o.Prop1,
                    Prop2 = o.Prop2
                    ...
                }
return Json(apps.ToJqGridData(page, rows, sidx, null, null), JsonRequestBehavior.AllowGet);
请注意,您还需要更新jqGrids的全局设置,使其与
ToJqGridData
使用的命名约定兼容(我只在母版页中包含此脚本):


我为一个类似的问题提出了自己的解决方案,我希望能够将任何JSON对象数组响应显示到一个漂亮的表中,而无需在JavaScript中硬编码任何内容,这样它就可以重用

这就是我所做的

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "POST",
            url: "DemoSvc.asmx/GetJSONTableContents",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: "{}",
            success: function(res) {
                $('#<%= DynamicGridLoading.ClientID %>').hide();
                $('#<%= DynamicGrid.ClientID %>').append(CreateDynamicTable(res.d)).fadeIn();
            }
        });
    });
</script>

$(文档).ready(函数(){
$.ajax({
类型:“POST”,
url:“DemoSvc.asmx/GetJSONTableContents”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:“{}”,
成功:功能(res){
$('#')。隐藏();
$('#').append(CreateDynamicTable(res.d)).fadeIn();
}
});
});
这是将数据从web服务拉入页面,这段代码的重要部分是调用“CreateDynamicTable()”将JSON对象数组转换为漂亮的HTML表。下面是代码,输出是一个漂亮的HTML表格

function CreateDynamicTable(objArray) {
  var array = JSON.parse(objArray);

  var str = '<table class="lightPro">';
  str += '<tr>';
  for (var index in array[0]) {
    str += '<th scope="col">' + index + '</th>';
  }
  str += '</tr>';
  str += '<tbody>';
  for (var i = 0; i < array.length; i++) {
    str += (i % 2 == 0) ? '<tr class="alt">' : '<tr>';
    for (var index in array[i]) {
      str += '<td>' + array[i][index] + '</td>';
    }
    str += '</tr>';
  }
  str += '</tbody>'
  str += '</table>';
  return str;
}
函数CreateDynamicTable(objArray){
var array=JSON.parse(objArray);
var-str='';
str+='';
for(数组[0]中的变量索引){
str+=''+索引+'';
}
str+='';
str+='';
对于(var i=0;i
我也找了一些免费的东西来做这件事,但我发现的一切都是商业化的,或者需要硬编码列值。我写了一篇简短的博客文章,包括更多细节、屏幕截图和一个简单的VS2008演示。总的来说,它非常适合我的需要


我为一个类似的问题提出了自己的解决方案,我希望能够将任何JSON对象数组响应显示到一个漂亮的表中,而无需在JavaScript中硬编码任何内容,因此它是可重用的

这就是我所做的

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "POST",
            url: "DemoSvc.asmx/GetJSONTableContents",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: "{}",
            success: function(res) {
                $('#<%= DynamicGridLoading.ClientID %>').hide();
                $('#<%= DynamicGrid.ClientID %>').append(CreateDynamicTable(res.d)).fadeIn();
            }
        });
    });
</script>

$(文档).ready(函数(){
$.ajax({
类型:“POST”,
url:“DemoSvc.asmx/GetJSONTableContents”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:“{}”,
成功:功能(res){
$('#')。隐藏();
$('#').append(CreateDynamicTable(res.d)).fadeIn();
}
});
});
这是将数据从web服务拉入页面,这段代码的重要部分是调用“CreateDynamicTable()”将JSON对象数组转换为漂亮的HTML表。下面是代码,输出是一个漂亮的HTML表格

function CreateDynamicTable(objArray) {
  var array = JSON.parse(objArray);

  var str = '<table class="lightPro">';
  str += '<tr>';
  for (var index in array[0]) {
    str += '<th scope="col">' + index + '</th>';
  }
  str += '</tr>';
  str += '<tbody>';
  for (var i = 0; i < array.length; i++) {
    str += (i % 2 == 0) ? '<tr class="alt">' : '<tr>';
    for (var index in array[i]) {
      str += '<td>' + array[i][index] + '</td>';
    }
    str += '</tr>';
  }
  str += '</tbody>'
  str += '</table>';
  return str;
}
函数CreateDynamicTable(objArray){
var array=JSON.parse(objArray);
var-str='';
str+='';
for(数组[0]中的变量索引){
str+=''+索引+'';
}
str+='';
str+='';
对于(var i=0;i
我也找了一些免费的东西来做这件事,但我发现的一切都是商业化的,或者需要硬编码列值。我写了一篇简短的博客文章,包括更多细节、屏幕截图和一个简单的VS2008演示。总的来说,它非常适合我的需要


@Dave,谢谢,但jqGrid已经商业化了。。这对我来说是不可能的。糟糕,我完全错过了。这是否意味着绝对没有像样的开源网格?是的,这也是最近才出现的。但我不知道还有其他开源网格。希望自从jqGrid公司化后,一个新的公司将开始运作。@Dave,谢谢,但jqGrid已经商业化了。。这对我来说是不可能的。糟糕,我完全错过了。这是否意味着绝对没有像样的开源网格?是的,这也是最近才出现的。但我不知道还有其他开源网格。希望自从jqGrid公司化后,一个新的公司将会开始。