0

我需要DataViewGrid从一个用 ASP.NET 制作的网站打印一个并使用 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();
}

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

原来的错误是:

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

4

1 回答 1

0

如果您使用 ASP.NET Ajax 并在您的页面或母版页中有一个 ScriptManager,您可以这样做:

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

此外,如果您使用 .Net 框架版本 4 或更高版本,您可以ClientIDMode="Static"在控件中设置属性,因此 ClientID 将呈现为已声明,您将能够使用document.getElementByIdjavascript 函数将声明的 ID 作为参数传递。

于 2013-02-21T18:39:22.450 回答