2013-02-26 77 views
0

我想实现以下目标:创建同一网页的多个实例,每个页面显示轻微不同的数据(如客户名称,地址,...)。这些页面应该尽可能减少用户的打印。问题是,如果你在每个页面上调用javascript print-directive,用户会得到大量的PrintDialogs。 解决此问题的一个解决方案是在运行时动态创建这些打印页面,并将它们全部放在一个页面上,并由分页符分隔(因此用户只需确认一次打印对话框)。这个解决方案有一个巨大的问题,我不能使用Visual Studio设计器来将我的页面放在一起。 另一种可能的解决方案是在设计器中构建页面模板,将每个页面的相应控件动态填入客户特定数据,然后以某种方式将所有生成的页面链接到一个长页面;再次由分页符分隔。但我真的不知道该怎么做....我尝试使用Render()事件,获取HTMl代码然后复制它,但我没有取得太多成功。ASP.NET:创建多个可打印页面并只需点击即可打印

因此,任何有关Render()方法或任何其他解决方案的指导将非常受欢迎!

+0

您是否可以使用SSRS生成报告而不是一个需要多次打印的页面? – 2013-02-26 14:45:35

+0

嗯我不这么认为;我想要打印的页面是针对最终用户的,包含图形和一些格式。从我所看到的情况来看,SSRS并不是真正为此而设计的(并且我没有使用SQL来访问我的数据)。 – Cleo 2013-02-26 14:49:57

+0

实际上,SSRS(Reporting Services)非常擅长。您可以将报告,图形,图表,格式化数据以及所有数据(如PDF)呈现并直接传输给用户。但它确实需要表格数据,这是非常正确的。 – 2013-02-26 15:17:01

回答

0

你的数据是任何列表形式?它可以合并成一个吗?不一定是全部,而是每个期望页面的ID,或类似的东西?它足以驱动数据绑定控件吗?

您可以在页面上使用Repeater控件根据模板构建“页面”。分页符可以通过CSS样式来实现。那么你只需要打印一个(长)页面。

你甚至可以让你的“页面”UserControl使渲染中的数据驱动变体更易于组织。

+0

是的,数据可以放在一个列表中。 这也可能是一个解决方案,因为中继器似乎能够使用控件。我会试一试。 – Cleo 2013-02-26 15:37:02