0

在我的项目中,我必须打印一个表格,例如姓名、年龄等。它全部打印在打印纸上,我只需要根据纸张放置姓名、年龄。目前我正在使用 asp.net 页面来服务我的目的。我在其中放置了位置 = 绝对的标签。当我单击打印时,我正在调用该页面,在 onload 事件中,我根据前一页内容放置标签值。

很简单。那么有没有更好的方法在点阵打印机中打印?请建议。

现在打印工作正常,但问题是当我单击打印按钮时,我正在打开该页面,如弹出窗口并在那里调用打印。但我希望在单击打印或取消按钮后关闭该弹出窗口。请帮我。

我的代码是这样的:

这个 BtnPrint 在我的主页上。主页包含姓名、年龄等输入。在 PrtPage 中,我根据给定的打印空间放置了标签。所以我在 PrtPage.aspx 的 onload 事件中加载主页值。

protected void BtnPrint_Click(object sender, EventArgs e)

{

    Response.Write("<script>");
    Response.Write("window.open('PrtPage.aspx','_blank')");
    Response.Write("</script>");
}

在 PrtPage 的页面加载中:

protected void Page_Load(object sender, EventArgs e)

{

     Response.Write("<script>");
     Response.Write("window.print()");
     //Response.Write("window.close()");
     Response.Write("<script>");
}

但是每当我点击打印按钮时,它都会询问“你想关闭窗口吗?”,所以请帮助我。在打印设置窗口中单击打印或取消后,我想关闭。

或者建议我是否有任何在 dotmatrix 中打印的好方法。在此先感谢。

山姆。

4

2 回答 2

0

你得到这些的原因是 asp.net 的范围仅限于浏览器窗口。如果浏览器设置为在您尝试自动关闭页面时询问用户是否要关闭页面(大多数情况下似乎是这样),则无法从浏览器中阻止它。

打印也是一样,你不能自动打印,因为浏览器不允许你打印。

于 2013-04-07T12:18:04.893 回答
0

使用单个页面而不是打开弹出窗口怎么样。在下面的博客文章中,您可以看到一个示例用法。两个带有可打印和不可打印内容的 div 标签和带有可打印内容的 div 标签被隐藏。然后您可以使用 Jquery 打印 DIV 内的内容。

http://itzonesl.blogspot.com/2013/02/how-to-print-content-inside-div-tag.html

更新:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server" >
<title></title>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
 <script src="jquery.printElement.js" type="text/javascript"></script>
<script type="text/javascript">
     function printpage() {
        $("#lblName").html($("#TextBox1").val());
        $("#lblSchool").html($("#TextBox2").val());
        $("#printable").printElement();
    }

</script>
<style type="text/css">
#printable { display: none; }
@media print
 {
     #nonprintable { display: none; }
     #printable { display: block; }
 }

</style>
</head>
<body>

    <form id="form1" runat="server">
     <div id="nonprintable">

        <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
        </table>

 </div>
     <div id="printable">
 <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label3" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblName" runat="server" ></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label4" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblSchool" runat="server" ></asp:Label>
                </td>
            </tr>
        </table>
 </div>
    <asp:Button ID="Button1" runat="server" Text="Print" 
        OnClientClick="printpage();" />
    </form>
</body>
</html>

使用 MasterPage:

母版页.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form runat="server">
    <div class="page">
        <div class="header">
            <div class="title">
                <h1>
                    My ASP.NET Application
                </h1>
            </div>
              <div class="clear hideSkiplink">
                <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                    <Items>
                        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
                        <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
                    </Items>
                </asp:Menu>
            </div>
        </div>
        <div class="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
        </div>
        <div class="clear">
        </div>
    </div>
    <div class="footer">
    </div>
    </form>
</body>
</html>

内容页面.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
 <script src="jquery.printElement.js" type="text/javascript"></script>
<script type="text/javascript">
     function printpage() {
        $("#MainContent_lblName").html($("#MainContent_TextBox1").val());
        $("#MainContent_lblSchool").html($("#MainContent_TextBox2").val());
        $("#printable").printElement();
    }

</script>
<style type="text/css">
#printable { display: none; }
@media print
 {
     #nonprintable { display: none; }
     #printable { display: block; }
 }

</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
     <div id="nonprintable">

        <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                </td>
            </tr>
        </table>

 </div>
     <div id="printable">
 <table class="style1">
            <tr>
                <td>
                    <asp:Label ID="Label3" runat="server" Text="Name"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblName" runat="server" ></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label4" runat="server" Text="School"></asp:Label>:
                </td>
                <td>
                    <asp:Label ID="lblSchool" runat="server" ></asp:Label>
                </td>
            </tr>
        </table>
 </div>
    <asp:Button ID="Button1" runat="server" Text="Print" 
        OnClientClick="printpage();" />
</asp:Content>
于 2013-04-07T12:53:25.840 回答