Silverlight 4数据网格打印

时间:2011-01-28 14:23:05

标签: silverlight-4.0 printing datagrid

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

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

我玩过打印基础知识,我可以打印数据网格,因为它完全显示在屏幕上,但我希望能够打印所有项目。

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

由于

编辑: 不确定它会有多大帮助,但这里是XAML大纲。

enter image description here

1 个答案:

答案 0 :(得分:2)

所以一个问题是,当用户说他们想要打印时,你可能会想要确保所有数据都在客户端上(通过执行一些更大的查询),但让我们假设你已经处理好了并且拥有客户的所有数据,并且现在只想专注于打印。

在这种情况下,我会指出David Poll的优秀附加打印助手(博客文章:http://www.davidpoll.com/2010/04/16/making-printing-easier-in-silverlight-4/)。他提供了一个库(有完整的源代码),基本上需要一个ItemsControl(或许多其他东西,但ItemsControl在这里特别相关)并自动分页。

所以你要创建一个单独的UserControl,它有一个数据的“打印视图”,其中包含一个不限于15项的DataGrid,删除了分页UI,并且基本上可以使所有内容“打印就绪”(有点像如果您熟悉该概念,请打印CSS表格。只需将他的库指向您数据的打印视图,并且客户端上已有所有数据,您应该只是设置所有数据。