【问题标题】:printing some HTML in a string in Asp.net在 Asp.net 中的字符串中打印一些 HTML
【发布时间】:2013-04-26 20:46:17
【问题描述】:

我有一些 html 内容,我将它存储在字符串变量中,我想直接打印它。在 c# 中有什么方法吗?我有一个不工作的 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>");

【问题讨论】:

  • 试试这个:printsheet('" + emailbody + "')
  • 错误是什么?检查printsheet 方法,使用Alert() 查看该方法在参数中得到了什么

标签: c# asp.net visual-studio


【解决方案1】:

你有很多方法可以做到这一点。

一种方法,使字符串public

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

并在 aspx 页面上将其呈现为:

<%=emailbody%>

另一种方法是使用 Literal 控件并在那里呈现它。当您拥有 UpdatePanel 时,这是唯一的方法。

例如,您将 Literal 放在页面上,您希望将文本呈现为:

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

然后在你后面的代码上输入:

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

现在,在您的情况下,问题是您在 javascript 代码上呈现一个字符串,而没有配额,正如其他 jesse 在他们的 cmets 上指出的那样。

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>");

【讨论】:

  • 不错的答案,但为什么“”在更新面板中不起作用?
  • @HassanMokdad 没有进行 UpdatePanel 更新,因为 UpdatePanel 没有在后面的代码上再次渲染页面,这部分代码无法运行。 updatepanel 所做的就是运行后面的代码,知道页面中需要更新的部分是怎样的,然后用 ajax 发送这部分。
  • 感谢您的解释:)
  • @HassanMokdad 可能不太好解释。让我再说一遍。更新面板需要知道页面的一部分到底是怎样的。如果您使用&lt;%=%&gt; 这部分页面将在客户端发送页面时更改。但是 UpdatePanel 并没有获得完整的页面,而只是获得了一部分。这部分必须完全定义并且不能更改,但只能在后面的代码上。你可以在后面的代码上更改它。
  • @HassanMokdad 这里还有一个:stackoverflow.com/questions/8202762/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
相关资源
最近更新 更多