2011-01-28 121 views
3

我有一个RIA服务的Silverlight 4应用程序。它基于Tim Heuer的video,我的设置几乎相同。Silverlight 4 datagrid printing

我有一个DomainDataSource,一组DomainDataSource.FilterDescriptors,一个Datagrid,它在DataPager的帮助下每页显示15个项目。当用户输入他们的过滤选项时,数据网格会相应更新,但仍然是多个页面,可以在屏幕上查看。我想实现一个打印功能,实际上打印数据网格,但所有的项目一次和多个页面,如果需要的话。

我已经打得四处印刷基础知识,我可以打印数据网格,因为它正好显示在屏幕上,但我希望能够打印的所有项目。

我在网上找不到任何好的例子。任何人都可以提出解决这个问题的方法吗?

感谢

编辑: 不知道它会如何有帮助的,但这里的XAML轮廓。

enter image description here

+0

这是一个programmers.stackexchange问​​题吗? – 2011-01-28 14:36:46

+1

只是我的2美分,我知道它花了很多钱,但telerik gridview支持出口到excel等。包括HTML,你可以从那里去?但目前你实际上可以创建一个存储过程并使用存储过程显示数据,然后在ssrs中使用完全相同的过程并传递相同的参数并弹出一个浏览器视图,您可以在其中打印出口等。 – 2011-02-05 10:13:30

回答

2

所以一个问题将是,当用户说他们想要打印,您大概然后要确保所有的数据是在客户端(通过执行一些较大的查询),但是让我们假设你已经照顾到了这一点,并拥有所有客户的数据,并且现在只想专注于打印。

在这种情况下,我会点你对大卫投票出色的其他打印助手(此处的博客文章:http://www.davidpoll.com/2010/04/16/making-printing-easier-in-silverlight-4/)。他提供了一个基本上需要一个ItemsControl(或其他许多东西,但ItemsControl在这里特别相关)的库(具有完整源代码)并自动为其分页。

所以你应该创建一个单独的UserControl,它具有数据的“打印视图”,其中包含DataGrid,不限于15个项目,删除分页UI,并基本上获取“打印就绪”如果你熟悉这个概念,可以打印CSS表格)。只需将他的图书馆指向您的数据打印视图,并将所有数据都存储在客户端上,并且您应该几乎完成所有设置。