2013-04-26 32 views
1

我有一些HTML內容和我保存它字符串變量,我想將其打印directly.Is有在C#什麼辦法?我有沒有工作打印字符串中的某些HTML在Asp.net

一個JavaScript代碼
string emailbody="HTML i need to send"; 
Page.RegisterStartupScript("StatusMessage", "<SCRIPT LANGUAGE=\"JavaScript\">function  printsheet(" + emailbody + "){var win = window.open('mywindow', 'left=0', 'top=0')var html = Zstring; win.document.open()win.document.write(html);win.print();}</Script>"); 
+2

試試這個:printsheet(' '' 「+ emailbody +」''') – opewix 2013-04-26 12:19:16

+0

不工作..... – Anilkumar 2013-04-26 12:23:10

+0

有什麼錯誤?檢查'printsheet'方法,使用'警報()'看什麼方法在paramethers得到 – opewix 2013-04-26 12:24:59

回答

4

你有很多方法可以做到這一點。

的一種方法,使字符串public

public string emailbody="HTML i need to send"; 

和ASPX頁面上,你呈現爲:

<%=emailbody%> 

的另一種方式是使用文字控制並使其在那裏。當你有UpdatePanel時,這是唯一的方法。

例如,您將文字頁上,在點你想渲染你的文字爲:

<asp:Literal runat="server" id="txtRenderOnMe" /> 

,並在後面的代碼你鍵入:

txtRenderOnMe.Text = "HTML i need to send"; 

現在,你的情況問題在於你在沒有配額的JavaScript代碼上呈現字符串,因爲其他jesse指出了他們的評論。

string emailbody="HTML i need to send"; 
Page.RegisterStartupScript("StatusMessage", "<script language=\"JavaScript\">function  printsheet('" + emailbody + "'){var win = window.open('mywindow', 'left=0', 'top=0')var html = Zstring; win.document.open()win.document.write(html);win.print();}</script>"); 
+0

尼斯的答案,但爲什麼「<%= emailbody%>」更新面板內不會工作? – 2013-04-26 13:08:00

+1

@HassanMokdad不工作的UpdatePanel的更新,因爲UpdatePanel的不是對代碼再次渲染頁面的背後,這這部分代碼不能運行。 updatepanel的作用是運行後面的代碼,瞭解需要更新的頁面部分,並用ajax發送該部分。 – Aristos 2013-04-26 13:11:22

+0

感謝解釋這:) – 2013-04-26 13:13:21