使用<%#%>在Javascript中打印

时间:2013-02-21 16:44:20

标签: c# javascript asp.net printing

我需要从ASP.NET制作的网站打印DataViewGrid并使用JavaScript来实现它,因为实现C#似乎要容易得多。下面是我用来尝试打印文档的代码。

<script type="text/javascript">
function doPrint() {
    var prtContent = document.getElementById('<%# dgvInvoices.ClientID %>');
    prtContent.border = 0;
    var WinPrint = window.open('', '', 'left=100,top=100,width=1000,height=1000,toolbar=0,scrollbars=1,status=0,resizable=1');
    WinPrint.document.write(prtContent.outerHTML);
    WinPrint.document.close();
    WinPrint.focus();
    WinPrint.print();
    WinPrint.close();
}

我不得不从('<%= dgvInvoices.ClientID %>');更改第3行,因为它给了我一个控件错误,现在我相信这会阻止我的文档打印。有没有人有任何解决方法或修复此问题?或者用C#打印简单方法?

原始错误是:

  

无法修改Controls集合,因为该控件包含代码块(即&lt;%...%&gt;)。

1 个答案:

答案 0 :(得分:0)

如果您正在使用ASP.NET Ajax并在页面或母版页中使用ScriptManager,则可以执行以下操作:

var prtContent = $get('<%= this.dgvInvoices.ClientID %>');

此外,如果您使用的是.Net framework版本4或更高版本,则可以在控件中设置属性ClientIDMode="Static",这样ClientID将按声明呈现,您将能够使用{ {1}} javascript函数将声明的ID作为参数传递。