在MVC3视图表中动态显示CSV

时间:2012-03-11 16:38:08

标签: asp.net asp.net-mvc-3

数据提供程序在SQL Server数据库表X中为我们提供动态报表数据。还有一个元数据表Y,它保存报表计数和列(以分号分隔的字符串)。在报告数据表X中,有一个文本字段,它保存所有数据,以分号分隔。提供者这样做是动态的,我无法影响这种选择。

我需要:

  • 从Y
  • 加载元数据
  • 从Y
  • 为X选择的报告加载数据
  • 在网页上的表格中显示数据

您将如何在模型/控制器中读取此内容并将其显示在webgrid /表中?对于具有固定列的模型,这很简单,但是当列是动态的时候呢?

当前解决方案(感觉很脏)是将数据解析为DataTable并从该对象手动输出视图中的行和表格单元格。没有使用WebGrid,MvcContrib Grid等。

1 个答案:

答案 0 :(得分:0)

我选择将表数据解析为我的MVC应用程序中的特定维度模型:

基础对象

  • 报告
  • 列定义
  • 数据行

报告有一个列定义列表和一个行计数整数。它还有一个行列表。每行都有一个列值列表(单元格),在此代码中始终将其视为字符串,并且仅使用列定义中的显示数据类型显示。

我定义的数据类型包括:文本,日期,数字,链接(指向CRM系统的多种链接类型,帐户链接,用户链接,订单链接)。我只有在需要以与现有数据类型不同的方式显示时才添加新数据类型。我可以想象有一天我需要一个图表数据类型(例如,单元格数据是一个绘图点列表)。

这使得报表定义非常灵活,但我可能会牺牲一些性能而且它纯粹是自定义的。我仍然希望对这种方法有所了解,但过去6-7个月没有回复可能意味着这是一个奇怪的情况,读者应该避免这种情况。