我需要将SL DataGrid导出为HTML,以便我的用户可以打印它。有人能把我引向正确的方向吗?
Upate:看完Rob的回答后,我正在改变我的问题。我现在只想将其导出为 PDF,而不是将 Silverlight Grid 导出为 HTML。有没有人在Silverlight中使用任何第三方PDF生成器?
对于打印来说是一个糟糕的选择,原因有几个,在这个网站上有很好的记录,所以我不会进入它们。
我建议您导出为PDF,而不是尝试使用HTML路由。对于导出为PDF,有许多很好的.Net工具可用。其他选项包括将网格导出到Excel,Spreadsheet Gear或OpenOffice Calc等电子表格程序,该程序将提供其他功能。
这可能是一个延伸,但是将Silverlight Xaml导出到XPS并将XPS文档返回给用户(可打印)怎么样?您可以在此处下载免费的XPS查看器。我过去使用 WPF 和 XBAP 做过这件事,所以我想你可以在服务器端这样做,让用户下载 XPS 文档。
如果要在 Silverlight 中生成 PDF 或 XPS,则必须往返于服务器。有多个框架和工具可用于在 .NET 中生成 PDF。
但是,我不会放弃在 Silverlight 2 中生成 HTML 进行打印的想法。我认为这是一个好主意,我不认为网络打印坏了。带有CSS打印样式表的HTML非常有用。
我最近写了一篇博客文章,描述了如何使用 ASP.NET AJAX 4.0 客户端模板在客户端上使用 Silverlight 2 生成 HTML。编写一段 C# 代码将任何数据网格转换为 HTML 表应该不难。
但是,如果您知道在数据网格中显示的对象类型,则可以根据对象结构自行生成HTML。
在 Silverlight 中生成 HTML 有多个选项:
- 串联字符串
- 使用 LINQ to XML 构建 HTML 片段
- 使用 Jeff Wilcox HTML 控件库
- 使用 AJAX 4.0 客户端模板 ASP.NET
您可以使用HTML桥将HTML传递回浏览器(Google以获取更多信息)。
您还应该查看我的博客文章,全面概述 Silverlight 中的打印选项。