2013-02-21 76 views
0

我需要从ASP.NET制作的网站打印DataViewGrid,并且正在使用JavaScript来完成它,因为实现它似乎更容易实现C#。以下是我用来尝试打印文档的代码。使用Javascript打印时使用<%# %>

<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集合,因为该控件包含代码块不能被修改(即<%...%>)。

+2

“(...)它给我一个控制错误”。哪个错误? – 2013-02-21 16:46:35

+0

如果将“<%# .... %>”更改为“<%=(...)%>”,会发生什么情况? – 2013-02-21 16:47:34

+0

错误是由于控件包含代码块(即<% ... %>),控件集合无法修改。并将其更改为<%=(..)%>未修复原始错误 – user1524116 2013-02-21 16:57:04

回答

0

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

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

此外,如果您使用的是.NET Framework版本4或上面,您可以在控件中设置属性ClientIDMode="Static",因此ClientID将呈现为声明,并且您将能够使用传递所声明的ID作为参数的JavaScript函数document.getElementById

相关问题