【发布时间】:2013-02-21 16:44:20
【问题描述】:
我需要从一个用 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 集合,因为该控件包含代码块(即 )。
【问题讨论】:
-
"(...) 它给了我一个控制错误"。哪个错误?
-
如果将
<%# .... %>更改为<%=(...)%>会发生什么? -
错误是无法修改控件集合,因为控件包含代码块(即 )。并将其更改为 并没有修复原始错误
-
我不确定是什么问题,但我已经尝试过另一种解决方法。我已经使用后面的代码渲染了 javascript(你可以使用这个的文字控制)或简单地渲染它。或者保留一个隐藏的文本框并使用 C# 服务器端代码在该隐藏文本框中填充客户端 ID,然后从 javascript 代码中使用它。
-
@user1524116 找到解决方案了吗?
标签: c# javascript asp.net printing