我有一个在我的页面上运行良好的gridView表。但是,我需要有一个打印选项。使用我到目前为止的代码,我在主页的gridview中设置的格式在新窗口打开时被删除。 (奇怪的是,当它实际打印时 - 删除更多格式化)。
我会尝试包含目前为止所有相关的代码:
的JavaScript
function CallPrint(strid) {
var prtContent = document.getElementById(strid);
var strOldOne = prtContent.innerHTML;
var WinPrint = window.open(
"",
"",
"scrollbars=yes,width=950,height=700,left=0,top=0"
);
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML = strOldOne;
}
GridView的html / asp
<div id="panelGv" runat="server">
<asp:GridView ID="prodGv" BorderWidth="1px" runat="server" AutoGenerateColumns="False" DataKeyNames="RECORD_NUM" DataSourceID="prodDataSource" CssClass="table table-hover table-bordered " Width="100%" Height="100%" HorizontalAlign="Center" CaptionAlign="Top"
CellPadding="2" ShowHeaderWhenEmpty="True" AllowPaging="True" BackColor="White" BorderColor="#999999" BorderStyle="Solid" Font-Size="15pt">
<EditRowStyle HorizontalAlign="Center" VerticalAlign="Middle" Font-Italic="False" Font-Size="19pt" Wrap="True" BorderColor="#999999" />
<EmptyDataRowStyle BorderColor="#999999" />
<FooterStyle BackColor="White" ForeColor="#000066" BorderColor="#999999" />
<HeaderStyle CssClass="HeaderStyle" HorizontalAlign="Center" VerticalAlign="Middle" BackColor="WhiteSmoke" Font-Bold="False" Font-Size="15pt" Height="45px" Wrap="True" Font-Italic="False" ForeColor="Black" BorderColor="#999999" />
<PagerSettings Visible="False" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" ForeColor="#000066" BorderColor="#999999" />
<%-- columns etc --%>
</asp:GridView>
</div>
打印按钮
<asp:button ID="btnPrint" OnClientClick="javascript:CallPrint('panelGv');"
Runat="Server" CssClass="btn btn-default" BackColor="WhiteSmoke" Font-Size="14pt" Height="40px" Text="Print" Width="120px" />
我的问题是,如何才能让表格准确打印出主页上的显示方式?打开一个新窗口时,颜色会被删除,但它仍然看起来不错。但是,打印预览显示一个完全未格式化的表格 - 并且拉伸以适合整个页面,使其看起来很荒谬。
非常感谢你。如果我能进一步澄清请告诉我,谢谢。