【问题标题】:ASP.NET MVC: Displaying JSON in a grid where JSON data only known at runtimeASP.NET MVC:在网格中显示 JSON,其中 JSON 数据仅在运行时知道
【发布时间】:2011-11-09 00:16:13
【问题描述】:

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

我想做的就是在我的 MVC 视图的网格中显示它,理想情况下它提供一些分页/排序等。列名应该从 JSON 中的标签派生。如果需要,我很乐意为这样的组件付费。

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

谢谢

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这看起来棒极了佩奇,我不知道!我一定会试一试的。
    【解决方案2】:

    我只使用 jqGrid 而没有 Telerik MVC,所以我只能在 jqGrid 实现方面为您提供帮助。

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

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

    如果您的已知格式的列数不定,您可以使用herehere 描述的另一个方法(参见the demothe demo)。只需要一些隐藏的列,并在loadComplete 内部使其可见并覆盖列名。

    【讨论】:

    • 谢谢奥列格,我会试试这些链接并建议我如何去。
    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多