2013-05-12 36 views
1

我有一個用戶將寫入一些文本的文本框。JavaScript運行時錯誤:無法獲取在asp.net中未定義或空引用的屬性'innerHTML'

現在,如果他想打印該文本,他應該點擊打印按鈕。 打印按鈕的設計如下:

<asp:Button ID="btnPrint" runat="server" Text="Print" Enabled="False" OnClientClick = "CallPrint('txtReadFiles')" /> 

現在在功能CallPrint被聲明爲aspx頁面的頭部如下:

<script type="text/javascript" language="javascript"> 
     function CallPrint(strid) 
     { 
      var prtContent = document.getElementById(strid); 
      **var docwrite=prtContent.innerHTML;** 
      var WinPrint = window.open('','','left=0,top=0,toolbar=0,status=0'); 
      WinPrint.document.open(); 
      WinPrint.document.write(docwrite); 
      WinPrint.document.close(); 
      WinPrint.focus(); 
      WinPrint.print(); 
      WinPrint.close(); 
     } 
    </script> 

但是當我點擊打印按鈕,我得到一個上線誤差**標記

的JavaScript運行時錯誤:無法獲取的未定義或空引用財產「的innerHTML」

什麼這裏是問題嗎?

+2

你有一個ID爲'txtReadFiles'的元素? – adeneo 2013-05-12 21:45:15

+0

而且,如果你有一個'txtReadFiles',它是什麼? – acdcjunior 2013-05-12 21:57:02

+0

是的,我有。它是一個文本框 – Vishal 2013-05-12 23:00:53

回答

3

這可能是因爲這條線var prtContent = document.getElementById(strid);失敗,即返回null。 是你正在試圖讓服務器控件的文本框?如果是這樣,那麼在運行時它的ID會改變,如果這確實是問題的外觀here

+0

是的,它是一個服務器控件。我的意思是我在寫入runat =「server」時聲明瞭該文本框。爲什麼它的ID會改變?我總是以txtReadFiles的身份訪問它。我不明白這個鏈接上的任何事情。 – Vishal 2013-05-12 23:36:18

+0

對不起,以上評論。我從你的鏈接中得到了我的答案。謝謝。 – Vishal 2013-05-13 05:15:43

相關問題