Javascript asp.net如何打印动态表格

Javascript asp.net如何打印动态表格,javascript,asp.net,Javascript,Asp.net,下面是我的动态表 <div id="Print"> <asp:Literal ID="Literal1" runat="server"></asp:Literal> </div> 我放置了一个imagebutton来打印 <asp:ImageButton ID="ImageButton5" runat="server" ImageUrl="~/Image/Print_Icon_Design.jpg" Height

下面是我的动态表

<div id="Print">     
    <asp:Literal ID="Literal1" runat="server"></asp:Literal> 
</div> 

我放置了一个imagebutton来打印

<asp:ImageButton ID="ImageButton5" runat="server" 
ImageUrl="~/Image/Print_Icon_Design.jpg" Height="25px" 
Width="27px" style="margin-left:20px" OnClientClick="CallPrint"/> 

我有下面的代码要打印,但它不工作,你能帮我吗

<script language="javascript" type="text/javascript">
    function CallPrint(Print) {
        var prtContent = document.getElementById(Print);
        var WinPrint = window.open('', '', 'left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0');
        WinPrint.document.write(prtContent.innerHTML);
        WinPrint.document.close();
        WinPrint.focus();
        WinPrint.print();
</script>

函数调用打印(打印){
var prtContent=document.getElementById(打印);
var WinPrint=window.open(“”,“”,’left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0’);
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
print.print();

跳过函数的参数打印并添加更改getElementById

var prtContent = document.getElementById('Print');

您需要将
Print
放在引号内,您的函数缺少最后一个花括号。 此外,您不需要Print参数(因为您不是从ImageButton传入它,而是已经在使用getElementById()检索它了):

试试这个

<script language="javascript" type="text/javascript">

function CallPrint() {
                var prtContent = document.getElementById('Print');
                var WinPrint = window.open('', '', 'left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0');
                WinPrint.document.open();
                WinPrint.document.write(prtContent.innerHTML);
                WinPrint.document.close();
                WinPrint.focus();
                WinPrint.print();
                return false;
}
 </script>

函数CallPrint(){
var prtContent=document.getElementById('Print');
var WinPrint=window.open(“”,“”,’left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0’);
WinPrint.document.open();
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
print.print();
返回false;
}



返回false到OnClientClick将阻止回发

prtContent.innerHtml将为null,因为您使用的是打印而不是“打印”

        function CallPrint() {
        var prtContent = document.getElementById('Print');
        var htmlcontent = prtContent.innerHTML;
        var WinPrint = window.open('', '', 'left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0');
        WinPrint.document.write(htmlcontent);
        WinPrint.document.close();
        WinPrint.focus();
        WinPrint.print();
    }

我已更正,但仍不起作用尝试在图像按钮中添加参数:OnClientClick=“CallPrint('somevalue')”,因为您的js函数只有一个参数。我用括号更正了它,但它仍然没有做任何事情,任何想法。代码很好,应该可以工作。javascript控制台中有任何错误吗?您能显示完整的HTML输出吗?现在它可以工作了,但我有另一个问题,问题是一个文本指示我的动态表,但打印输出只是wtih我拿不到我的桌子设计图。你能帮我吗
<asp:ImageButton ID="ImageButton5" runat="server" 
                        ImageUrl="~/Image/Print_Icon_Design.jpg" Height="25px" 
            Width="27px" style="margin-left:20px" OnClientClick="return CallPrint()"/>
        function CallPrint() {
        var prtContent = document.getElementById('Print');
        var htmlcontent = prtContent.innerHTML;
        var WinPrint = window.open('', '', 'left=0,top=0,width=400,height=400,toolbar=0,scrollbars=0,status=0');
        WinPrint.document.write(htmlcontent);
        WinPrint.document.close();
        WinPrint.focus();
        WinPrint.print();
    }