0

ページのonloadイベントを埋めるテーブルオブジェクトを持つdivがあります。

<div id="divcontent" runat="server">
<asp:Table id="tblcontent" runat="server" CellPadding="4" align="center"   width="80%">      </asp:Table>
</div>     

<div align="left" style ="width:90%; padding-top:20px;">
<input value="Print" type="button" onclick="PrintDiv();"/>       
</div> 

divコンテンツだけを印刷するために、divコンテンツを含むポップアップウィンドウを開くための次のコードがあります。

<script type="text/javascript">

function PrintDiv() {

    var divToPrint = document.getElementById('divcontent');

    var popupWin = window.open('', '_blank', 'width=500,height=700');

    popupWin.document.open();

    popupWin.document.write('<html><body onload="window.print()">' +   divToPrint.innerHTML + '</html>');

    popupWin.document.close();
}

</script> 

しかし、ポップアップウィンドウが開くと、その空です!! 誰かが理由を言うことができますか?

4

1 に答える 1

3

ページにマスターページがある場合、divcontentは、設定したブラウザのid値ではないrunat="server"ため、コントロールを使用ClientIDしてdivのレンダリングされたIDを取得します。

これを試して、

function PrintDiv() {
    var divToPrint = document.getElementById('<%= divcontent.ClientID %>');

    var popupWin = window.open('', '_blank', 'width=500,height=700');
    popupWin.document.open();
    popupWin.document.write('<html><body onload="window.print()">' +   divToPrint.innerHTML + '</html>');
    popupWin.document.close();
}
于 2012-11-27T08:32:04.837 に答える