我有一个aspx页面,我想在我的应用程序中将其用作注册人帐户的打印版本。
在该页面中,我有以下代码,基本上包含一个非常长的表,可以扩展到多个A4页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PrintAccountDetails.aspx.cs" Inherits="protected_PrintAccountDetails" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Print Account Details</title>
</head>
<body style="margin: 0;">
<asp:Panel runat="server" Width="210mm" Style="margin: 0 auto;">
<br /><br />
<asp:Label ID="Label8" runat="server" Font-Underline="True">Financial Information -Trading Experience</asp:Label>
<br />
<br />
<asp:Label ID="Label9" runat="server" Font-Underline="False" Font-Bold="True">Answers on questionnaire</asp:Label>
<br />
<br />
<table style="width: 100%">
<tr>
<td style="width: 70%">
<ul>
<li id="q66" runat="server">Main Shareholders - partners - members with more than 25%
share - 1</li>
</ul>
</td>
<td style="width: 30%">
<%= PrintAnsw66.Trim() %>
</td>
</tr>
<tr>
<td>
<ul>
<li id="q67" runat="server">Main Shareholders - partners - members with more than 25%
share - 2</li>
</ul>
</td>
<td>
<%= PrintAnsw67.Trim() %>
</td>
</tr>
.
.(Many more <tr>s of two cells)
.
.
</table>
</asp:Panel>
</body>
当我尝试在IE9中打印该页面时,靠近分页符的tr无法正确打印。恰好靠近分页符的tr在前一页中有2d单元格,而页面中SAME行的第一个单元格应该是。 在FF和Chrome中,表格中的每一行甚至是分页符中的那一行都是打印在一起而没有奇怪的行为。
有没有人知道可能是什么问题,我该如何解决? 提前谢谢!
答案 0 :(得分:1)
基本思想是用div替换表。
原因是如果表是中断的(当资源管理器尝试打印它时),那么结果可能不是你喜欢的,但是div可以在它们的一行中断而不改变它们的视图他们将继续下一页。
我看到你的桌子实际上是两列70%-30%,所以很容易用div制作它。
这里有一些例子:
http://matthewjamestaylor.com/blog/equal-height-columns-2-column.htm
http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/
http://www.thesitewizard.com/css/design-2-column-layout.shtml
答案 1 :(得分:0)
我找不到票证的链接,但它存在。
要解决此问题,您需要删除表元素结束标记与下一个表格单元格开头之间的所有空格和换行符。换句话说,将td,tr放在同一条线上,彼此相邻,中间没有空格。