2011-09-02 41 views
0

我花了很长时间尝试解决这个问题,但迄今为止没有成功。基本上,将会有一个JSON数据集通过jQuery GET或类似的方式传递,这将在列数和列名中有所不同。数据类型会有所不同。有一次它可能是Name = Bob,Age = 50(等等),而下一次它可能是名字,地址和职业。ASP.NET MVC:在网格中显示JSON数据,其中JSON数据只在运行时已知

我想要做的是在我的MVC视图中提供一个网格,它理想地提供了一些分页/排序等。列名应该从JSON中的标签派生。如果需要,我很乐意为这种组件付款。

就是这样!如果我失败了,我想我只需要呈现HTML并且不需要其他功能。

谢谢

PS。实际的数据将来自匿名集合,由控制器中的LINQ查询生成。如果有人知道如何(按需分页会很好),但没有运气,绑定到这种类型将是完美的解决方案。 2天获得Telerik MVC网格绑定到一个匿名类型或它的任何转换(动态,表等)到目前为止是不成功的。我已经添加了telerik MVC和Jqgrid作为标签,以便有专家监督那些知道答案的部分。

回答

1

你可能想看看DataTables jQuery plug-in。它内置了分页,排序和许多其他很酷的功能。大部分示例显示了在页面上呈现整个表格,然后它接管了分页等等。但是,它也支持使用服务器端绑定,这里是ASP.NET MVC中绑定的一个很好的例子网站 - jQuery DataTables and ASP.NET MVC Integration

我一直在使用这个插件大约一个月,现在已经非常满意。

+0

这看起来太棒了佩奇,我不知道!我会确保这一点。 – Glinkot

1

我只使用jqGrid和没有Telerik MVC,所以我只能在他帮助你jqGrid的实现。

有几种不同的方法可以实现可变数量的列和ather jqGrid参数。

最简单的方法是使用GridUnload方法(见the old demothe answer)的重建之后就可以创建新的jqGrid网格的基础<table>元素。所以你可以只需要一个$.ajax呼叫,从你需要的服务器colModel中加载,然后在$.ajaxsuccess处理程序中调用GridUnload,然后创建jqGrid。

如果您有变量数列与知道你可以使用另一个aproatch格式描述herehere(见the demothe demo)。一个需要有一些隐藏的列,并在loadComplete内部使其可见并覆盖列名。

+0

谢谢奥列格我会给这些链接一去,并告诉我如何去。 – Glinkot