1

我有一个页面,其中包含带有Telerik 图表的用户控件(也有网格,但它们工作正常)。从这个页面,用户可以点击一个按钮被重定向到一个“Printer-Friendly Version”类型的页面,该页面通过javascript打开一个新窗口并通过一个稍微不同的视图(用于格式化和东西),但是telerik代码都是一样的。

问题是,我的图表在原始窗口中显示得很好,但新窗口基本上显示一个没有数据的空图表。此错误仅存在于 IE 中,并且仅适用于 Charts。无论出于何种原因,网格都可以正常工作。我认为这是由于浏览器之间的脚本缓存存在差异——如果我错了,请纠正我,我对客户端导向的 Web 开发是半新手。

无论如何,我在某处读到 Telerik 在通过 ajax 加载时存在加载数据和/或 js 文件的问题,所以也许这就是问题所在?如果是这样,我怎么能解决这个问题?如果没有,关于什么可能导致这个问题的任何想法?这让我非常沮丧,因为打印预览页面似乎应该是最简单的工作。

编辑:

图表被呈现为 html(如果有人可以解释如何将它们呈现为图像,那就太棒了)。开发工具在 chrome 和 IE 之间显示基本相同的东西。每当我的网络服务出现故障时,WinMerge 它们并寻找它们之间的任何特性/差异。与此同时,“渲染为图像”的概念听起来很有希望。这样我就可以从第一页保存图像,然后将其直接插入打印预览页面,对吗?而且由于它是一个打印预览页面,它不需要交互或任何东西,所以效果很好。

另一个(重要的)编辑:

这些应该是罪魁祸首……

这里有一些 jQuery 错误..但是为什么呢?

这里有更多细节:

不确定 <code>b</code> 指的是什么,但看起来是问题所在

这是它工作(在 chrome 中)和不工作(在 IE 中)的并行:

看起来在 IE 中它只是没有提取任何数据

4

1 回答 1

1

您是否考虑过使用特定于打印的样式表,例如

<link rel="stylesheet" type="text/css" media="print" href="print.css" />

在其中指定打印时要应用的样式。

这样,您就可以避免重新加载页面(重复的数据库命中等),并且不需要深入研究 Telerik 控件的 AJAX。

编辑:

关于使用图像而不是 HTML,首先确保您不会丢失任何功能/细节,然后检查.Save()RadChart 控件的方法。您可以将其保存到内存流中,或者如果您想重新使用图像,请将其保存到网络服务器上的目录并定期清理它。这样,您只需将打印版本指向图像,而不是重新生成它。

这个 Telerik 论坛帖子可能有用。

于 2012-06-20T14:34:19.640 回答