以前写的程序没做打印处理,现在这两个程序要求必须得有打印,这个向来是个不好处理的难题,研究了好几天,有些还没研究透彻,比如水晶报表就没做实验,时间紧张啊(以前有时间的时候又没好好研究:(),鼓捣了阵子,好歹算是有点眉目了。
下面说说我的解决思路:
先声明下我这个方法比较笨哈。
1、建立一个简单页面与主页面数据基本对应的,比如用户列表User.aspx页面,那就建立一个用户列表打印页UserPrint.aspx,打印页就只有一个DataGrid,后置类里就是个数据绑定,把要打印的数据查询出来,不分页。单独建立一个页面的目的主要是我不知道怎么解决主页面中编辑列的隐藏问题,怎么能在打印的时候就不显示。所以只好出此下策。
2、主页面的打印按钮,就是οnclick=window.open(打印页面)。可以传递查询参数之类的,打印页好据此查数据。
3、打印页aspx的DataGrid用<div class="PrintContent"></div>包括起来,让js函数知道哪些需要打印。底部用<script>js的函数如Print();window.close()</script>,意思就是调用打印函数好打开一个通用打印页面Print.aspx,然后就把当前页面关掉。
4、打印函数把打印相关按钮及要打印的内容输出到Print.aspx通用页面中呈现,就可以打印了,当然还得定好css,不然表格、字体等比较难看。
等有时间一定要好好研究下怎么能省事省力的解决打印问题。