【问题标题】:Do ASP.NET Chart controls support canvas/html5 in the browser?ASP.NET 图表控件是否支持浏览器中的 canvas/html5?
【发布时间】:2012-07-17 00:03:50
【问题描述】:
我见过一些 JavaScript 图表库,它们使用 canvas 和 html5 具有很酷的交互性,最重要的是,它们不会从服务器下载生成的图像来显示图表,而是在浏览器中生成图表。遗憾的是,这些库还很年轻,没有 Microsoft 的 ASP.NET 图表控件那样的大量图表和选项。这种 canvas/html5 技术是 Microsoft 的 ASP.NET 图表控件中的一个选项吗?如果没有,它很快就会出现吗?
【问题讨论】:
标签:
asp.net
html5-canvas
mschart
【解决方案1】:
没有。 ASP.NET 的图表库生成光栅位图(通常为 PNG 图像)。它们是在 2005-2006 年左右编写和发布的,因此不支持更新的网络技术,例如 <canvas> 或 HTML5 功能。
如果您是 GDI 专家,可能有一种解决方法:将库使用的 GDI 图像对象从位图更改为 GDI Windows 元文件,然后将元文件转换为 SVG 并将其呈现给客户端。
...或者只使用Google Charts。
不要抱太大希望 - 图表库是 ASP.NET Web 窗体库的成员(是 Control 的子类),而 MVC 目前正在流行。然而,对于我的一些项目,我通过剥离所有对 ASP.NET 的引用并让它生成图表图像而不考虑上下文(出于某种原因,这些类被标记为 internal )。这种方式更加灵活,我怀疑微软这样做是为了安抚他们向其授权图表库的 Dundas。
【解决方案2】:
不,很遗憾,这不是一种选择。 Chart 控件仅呈现为开箱即用的图像。据我所知,尚未宣布将其扩展到任何其他高级渲染格式。
如果您真的需要自定义和交互的东西,我建议您查看 gRaphael、Highcharts、Flotr2 或 Dojo Charting。在我看来,尽管还很年轻,但在许多情况下,它们实际上比 ASP.NET 图表控件更灵活。