我需要从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;)。
答案 0 :(得分:0)
如果您正在使用ASP.NET Ajax并在页面或母版页中使用ScriptManager,则可以执行以下操作:
var prtContent = $get('<%= this.dgvInvoices.ClientID %>');
此外,如果您使用的是.Net framework版本4或更高版本,则可以在控件中设置属性ClientIDMode="Static"
,这样ClientID将按声明呈现,您将能够使用{ {1}} javascript函数将声明的ID作为参数传递。