2013-02-21 43 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

相關問題