ASP.NET MVC:在网格中显示JSON,其中JSON数据仅在运行时已知

时间:2011-09-02 08:39:24

标签: jquery asp.net-mvc json jqgrid telerik-mvc

我花了很长时间尝试解决这个问题,但到目前为止还没有成功。基本上,将有一个通过jQuery GET或类似的JSON数据集,它们的列和列名称数量不同。数据类型会有所不同。有一次它可能是Name = Bob,Age = 50(等),而下次可能是姓名,地址和职业。

我想做的就是在MVC视图的网格中出现,理想情况下提供一些分页/排序等。列名应该来自JSON中的标签。如果需要,我很乐意支付这样的费用。

就是这样!如果我失败了,我想我只需渲染HTML而没有其他功能。

由于

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

2 个答案:

答案 0 :(得分:1)

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

有一些不同的方法可以实现可变数量的列和atq jqGrid参数。

最简单的方法是使用GridUnload方法(请参阅the old demo中的the answer),重新创建网格的基础<table>元素,之后您可以创建新的 jqGrid。因此,您可以进行$.ajax调用,该调用从您需要的服务器colModel加载,并在您调用GridUnload success的{​​{1}}处理程序内加载创建jqGrid。

如果您的知道格式的列数可变,则可以使用另一个描述为herehere的aproatch(请参阅the demothe demo)。只需要一些隐藏的列,并在$.ajax内部使其可见并覆盖列名称。

答案 1 :(得分:1)

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

我已经使用这个插件大约一个月了,到目前为止对它非常满意。