`
chenxueyong
  • 浏览: 342385 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Asp.net 打印 页面 局部页面 动态控制

阅读更多

Asp.net 打印 页面 局部页面 动态控制

1. window.print(); 打印

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><input class="NOPRINT" type="button" onclick="window.print()" value="print">

即可实现打印

如果要实现页面的局部打印,有两种办法

   1).利用style,不需要打印的地方都加上 NoPrint Style

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->    <style media=print>
    .Noprint
{display:none;}
    .PageNext
{page-break-after: always;}
    
</style>

  
<asp:Panel ID="Panel1" Width=98%  runat="server" CssClass ="NOPRINT">
       ..
   
</asp:Panel>   
    
<table border="0" cellpadding="0" cellspacing="0"  id="TABLE1"  >
        
<tr class="NOPRINT">.   </tr>
    
</table>

如果实现动态打印,可以用弹出对话框或radioButton来控制需要动态打印地方的 Class

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><TABLE Width="98%" align="center" cellspacing="0" border="1" style="border-collapse:collapse;">
      
<tr> </tr>
      
<tr> </tr>
      
<tr id="SignTR">  <!--动态打印部分--> 
        
<td  nowrap style="width: 10%" colspan="2">
        
</td>
        
<td width="90%" nowrap >               
        
</td>
      
</tr>
</TABLE>
<asp:Panel ID="Panel2" runat=server CssClass ="NOPRINT">
是否要将签核过程打印在页面后
  
<input type="radio" value="1" name="s1"   onclick="SignTR.className=''">是   
  
<input type="radio" value="0" name="s2"   onclick="SignTR.className='NOPRINT'">否   
   
<input class="NOPRINT" type="button" onclick="window.print()" value="打 印"> 
</asp:Panel>
 
<%--或者利用Javascript弹出控制--%>
<script language="Javascript"> 
function preview1() 
{    
var bln;
     
var bln=confirm("需要打印签核流程吗?")
     
if (bln==true)
       { SignTR.className
='';
       }
     
else     
       { SignTR.className
='NOPRINT';
       }     
     window.print(); 

</script>
<input type="button" ID="printU" runat=server  name="printU" value="打印" onclick="preview1()" Class="button"> 

   2).利用利用HTML的字符截取

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><!--startprint--> 
<TABLE Width="98%" cellspacing="0" border="1" >
  
<tr></tr>
                
<!--endSign--> 
  
<tr></tr>
</TABLE>
<!--endprint--> 
<script language="Javascript"> 
function preview() 

     
var prnhtml=null;
     bdhtml
=window.document.body.innerHTML; 
     sprnstr
="<!--startprint-->";//开始标识   
     eprnstr="<!--endprint-->";//结束标识
     prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 
     prnhtml
=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //截取标识之间部分打印
     FGFG=window.document.body.innerHTML
     window.document.body.innerHTML
=prnhtml; 
     window.print(); 
     window.document.body.innerHTML
=FGFG //如果不加此行,没有打印的部分在页面上会隐藏掉
}
</script> 

如果动态控制打印,可以在JS里面用对话框控制eprnstr  值是<!--endprint--> 或<!--endSign-->

2.利用WebBrowser 打印 

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><style media=print>
.Noprint
{display:none;}
.PageNext
{page-break-after: always;}
</style> <%-- 同样要设置Noprint style --%>
  
<OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height=0  width=0 >
  
</OBJECT>
<input type=button value=打印     onclick="document.all.WebBrowser.ExecWB(6,1)" class="NOPRINT">
<input type=button value=直接打印 onclick="document.all.WebBrowser.ExecWB(6,6)" class="NOPRINT">
<input type=button value=页面设置 onclick="document.all.WebBrowser.ExecWB(8,1)" class="NOPRINT">
<input type=button value=打印预览 onclick="document.all.WebBrowser.ExecWB(7,1)" class="NOPRINT">

WebBrowser.ExecWB(1,1) 打开
WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.ExecWB(4,1) 保存网页
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印预览
WebBrowser.ExecWB(8,1) 打印页面设置
WebBrowser.ExecWB(10,1) 查看页面属性
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
WebBrowser.ExecWB(17,1) 全选
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 关闭窗体无提示

其中最后一项WebBrowser.ExecWB(45,1)可以有效解决IE7下,使用WebBrowser.ExecWB(7,1)执行打印预览后返回到原窗口时,window.close()方法失效的问题

3.用ScriptX.cab 控件打印

打印的必须文件有2个:   配置文件:setting.js   显示文件:print.js   
  setting.js   如下:   
  document.write("<object   id=\"factory\"   style=\"display:none\"   viewastext   classid=\"clsid:1663ed61-23eb-11d2-b92f-008048fdd814\"   codebase=\"images/events/ScriptX.cab#Version=5,60,0,360\"></object>");  
  function   Printers()   {  
  agree   =   confirm('确定打印吗?');  
  if   (agree)   {  
  if   (agree)  
  {  
  NoPrinter.style.visibility='hidden';  
  factory.printing.Print();}  
  else   NoPrinter.style.visibility='visible';  
        }  
  }   
      factory.printing.header   =   ""  
      factory.printing.footer   =   ""  
      factory.printing.leftMargin   =   0.75  
      factory.printing.topMargin   =   0.75  
      factory.printing.rightMargin   =   0.75  
      factory.printing.bottomMargin   =   0.75   
  显示文件print.js   如下:       
  document.write('<style   media="print">@media   print   {   .noprint{display:none}   }   </style>');  
  /////////////////////////////////~~控制打印时不显示按钮的样式,在页面不需要打印的地方只需要引用该样式即可  
  document.write('<div   id=NoPrinter   name=NoPrinter   align=right   style="visibility:visible"   class="noprint"><br>&nbsp;');  
  document.write('<input   type=button   class=button   value=关闭   name="bFQ"   id="bFQ"   onclick=\"javascript\:window.close()\">');  
  document.write('<input     type="button"   value="打印设置"   onclick=\"factory.printing.PageSetup()\">');   

  document.write('<input   type="button"   value="打印预览"   onclick=\"factory.printing.Preview()\">');  
  document.write('<input   type=button   name=button3   value="打印"   onclick="Printers()">&nbsp;&nbsp;&nbsp;&nbsp;</div>');   
      
  在使用打印功能时,只要把文件2个文件包含在页面中放置打印按钮的地方即可,代码如下:   
      <script   src="../inc/print/Printer.js"></script>  
      <script   src="../inc/print/Printers.js"></script>  
4.把页面的内容设计成RDLC报表打印出来

分享到:
评论

相关推荐

    .net 页面指定区域打印的方法

    这种方法对于需要打印页面中特定区域的需求非常实用,且能够很好地控制打印的内容。 #### 第三种方法:使用新窗口打印指定内容 当要打印的内容布局与原页面有较大差异时,建议采用此方法。这种方法能够在新的窗口...

    北大青鸟ACCP5.0 ASP.NET 第二章课件

    综上所述,本章内容涵盖了ASP.NET的核心概念,如运行机制、系统对象、页面生命周期、数据传递以及页面输入输出控制。这些知识对于理解ASP.NET开发至关重要,为实现用户登录功能和其他交互式Web应用程序奠定了基础。

    基于ASP.NET超市管理系统.zip

    ASP.NET提供了丰富的控件、事件驱动模型以及自动页面状态管理,使得开发人员可以更高效地编写网页应用。 二、超市管理系统架构 基于ASP.NET的超市管理系统通常采用三层架构:表现层(Presentation Layer)、业务...

    asp.net省市级联

    例如,可能包含一个名为"CityChange.aspx"的ASP.NET页面,其中包含了上述步骤的实现代码;或者是一个"CityChange.js"脚本文件,用于处理客户端的级联效果和数据交互。 总之,省市级联功能是ASP.NET Web应用中的常见...

    ASP.NET-[其他类别]PDF阅读器源码.zip

    在ASP.NET框架下,开发者可以使用多种编程语言,如C#、VB.NET等,来创建动态、交互式的网页应用。在这个特定的场景中,我们关注的是一个与PDF阅读器相关的源码,它可能是一个ASP.NET应用,用于在线预览和处理PDF文档...

    ASP.NET 开发网上鲜花销售系统的设计(源代码+论文).zip

    ASP.NET是由微软开发的一种服务器端Web应用程序框架,用于构建动态网站、Web应用程序和服务。它基于.NET Framework,提供了丰富的功能和高效性能,支持多种编程语言,如C#、VB.NET等。ASP.NET的核心优势在于其内置的...

    ReportViewer 控件

    2. **交互性**:ReportViewer控件提供了一套完整的交互式功能,如分页、排序、过滤、钻取和打印等,用户可以直接在网页上对报表进行操作,增强用户体验。 3. **样式自定义**:控件允许开发者自定义报表的样式,包括...

    ajx应用

    这段配置启用了ASP.NET AJAX的脚本模块,使得我们可以使用ASP.NET AJAX库提供的控件和功能,如UpdatePanel,实现页面局部刷新。 至于`System.Web.Extensions`,它是ASP.NET AJAX框架的一部分,包含了处理AJAX请求所...

    Telerik RadControls Q3 2008 Retail Incl Source [November]

    - 更新面板:允许局部页面更新而无需重新加载整个页面。 - 动态加载控件:支持异步加载数据和内容。 - 客户端脚本:提供客户端 JavaScript 支持以增强交互性。 - 服务器控件:支持基于服务器端的事件处理机制。 ###...

    基于ASP.NET的答辩考试管理系统的设计与实现 (2010年)

    - 利用AJAX技术提升系统的用户体验,实现页面的局部刷新,减少页面重新加载的时间。 - 通过数据库存储各类信息,包括学生信息、教师信息、答辩题目、评分表等。 - 使用服务器控件和事件驱动编程模式,创建响应...

    2021-2022计算机二级等级考试试题及答案No.2689.docx

    7. ASP.NET页面元素:在ASP.NET窗体文件中,常用的页面元素是Web服务器控件,它们可以处理服务器端的事件。正确答案是B。 8. 搜索引擎使用:在网上查找信息时,通常需要输入关键字(Keywords)来定位相关信息。正确...

    ajax 技术 CH3 C# 案列

    它通过在后台与服务器交换数据并局部刷新页面的方式,极大地提升了用户体验,尤其是在交互性较强的应用场景中。本章我们将深入探讨Ajax在C#环境中的应用案例。 首先,我们来看“CH3.sln”文件,这通常是一个Visual ...

    C#GDI+图形程序设计源码

    12.1 创建第一个ASP.NET Web应用程序 12.2 第一个图形Web应用程序 12.3 绘制简单的图形 12.4 在Web上绘制图像 12.5 绘制曲线图 12.6 绘制饼图 总结 第13章 GDI+ 的最佳实践及性能技术 13.1 理解渲染过程 ...

    网站制作方案样本.doc

    ASP.net 是基于通用语言编译运营程序,因此它强大性和适应性,可以使它运营在 Web 应用软件开发者几乎所有平台上。 六、网站自身优化 网站自身优化旨在提高网站的访问速度和搜索引擎优化,减少网站的加载时间,...

    购物网B2C需求文档案例

    网站的架构设计为三层结构,包括用户界面(UI)、业务逻辑层和数据层,利用ASP.NET进行动态网页开发。后台管理分为管理员和普通用户两种权限,管理员拥有最高权限,可以分配其他管理员的权限。 网站的主要功能需求...

    jquery.PrintArea.js

    jQuery 打印插件 PrintArea 支持页面局部打印

    使用Ajax局部更新Razor页面的实例代码

    首先,我们需要创建一个ASP.NET MVC项目,并在其中创建一个名为`Book`的Controller。接着,为这个Controller添加一个名为`Index`的视图。在视图中,我们将设置一些基础HTML结构,包括一个链接和一个用于显示更新内容...

    GDI+图像程序设计(PDF & 源码 -电子工业出版社)

    12.1 创建第一个ASP.NET Web应用程序 12.2 第一个图形Web应用程序 12.3 绘制简单的图形 12.4 在Web上绘制图像 12.5 绘制曲线图 12.6 绘制饼图 总结 第13章 GDI+ 的最佳实践及性能技术 13.1 理解渲染过程 ...

Global site tag (gtag.js) - Google Analytics