【问题标题】:Printing specified items from an Asp.net web form从 Asp.net Web 表单打印指定项目
【发布时间】:2011-03-14 16:19:30
【问题描述】:

我有一个使用 Web 表单创建的 asp.net 网页。它上面有许多网格视图,通过单击按钮从数据库中填充。

我希望通过单击不同的按钮来打印此页面的版本。我正在寻找自定义打印页面,指定一些文本,然后是 gridview 内容(用户友好版本),然后是更多文本等

非常感谢任何帮助

马克

【问题讨论】:

    标签: asp.net vb.net printing webforms


    【解决方案1】:

    最简单的解决方案是使用CSS 来显示和隐藏不同的元素,具体取决于它们是用于屏幕还是打印。在页面输出中包含所有元素(打印和屏幕)并使用CSS 来控制它们。

    这是一个非常简单的示例 - 假设您有一个只应包含在打印版本中的摘要文本,以及一些只应包含在屏幕版本中的按钮。

    标记:

    <p class="printOnly">
        Here is my summary text.
    </p>
    <asp:button ID="btnSomeButton" runat="server" Text="Some Server Button" CssClass="screenOnly" />
    

    CSS:

    @media print {
        .screenOnly { display: none; }
    }
    
    @media screen {
        .printOnly { display: none; }
    }
    

    最后,任何标有CSS class screenOnly 的元素都将从打印内容中隐藏,任何标有CSS class printOnly 的元素都将从屏幕版本中隐藏。

    从那里只需在页面某处有一个打印按钮或链接:

    <a href="#" onclick="window.print();" class="screenOnly">Print Page</a>
    

    【讨论】:

      【解决方案2】:

      您可能正在使用window.print() 打印网络表单。

      创建一些div,并在其中包含您想要的文本,并最初隐藏div

      按下打印按钮时,调用 javascript 函数以取消隐藏 div 并调用 window.print()。在window.print() 之后,再次隐藏div

      【讨论】:

        【解决方案3】:

        打印网页内容的简单方法是使用 Javascript。

        <script language="JavaScript" type="text/JavaScript"> 
            function doPrint() { 
            bdhtml=window.document.body.innerHTML; 
            sprnstr="<!--startprint-->"; 
            eprnstr="<!--endprint-->"; 
            prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 
            prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); 
            window.document.body.innerHTML=prnhtml; 
            window.print(); 
            } 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-03
          • 1970-01-01
          • 2010-10-12
          • 2022-08-08
          • 2017-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多