我在多行文本框中添加了一些文字。它有一些Html标签,如
等。我如何格式化这个,以便多行文本框中的文本呈现格式化HTML的浏览器?现在它只是渲染纯文本。
附加的一些示例文本:
"<p class=""myclass"">blah blah blah some text</p>"
我试过这个,但它只是呈现编码值,不会将它们呈现为HTML:
txtSomeMultilineTextbox.Text = HttpUtility.HtmlEncode(someText.ToString());
此多行文本框的目的是为了只读条款&amp;条件框。我希望格式化文本在那里,如粗体等。
我对使用第三方控件不感兴趣。只是想弄清楚如何使这个工作。
答案 0 :(得分:5)
我假设您要使用多行文本框,因为滚动条。你可以用div来实现这个目标。
<div style="width:300px;height:250px;overflow:auto;"></div>
答案 1 :(得分:1)
格式化HTML在标准HTML textarea控件中不起作用。让它工作非常棘手,大多数实现都依赖于iFrame和繁重的javascripting。试图自己实现这个是一个非常糟糕的主意。
幸运的是TinyMCE是开源的,非常棒。
答案 2 :(得分:1)
如果这是只读条款和条件,我假设你想要它在文本框中滚动?您可以使用普通div实现此目的,修复高度并使用overflow:auto
css属性
答案 3 :(得分:0)
您需要对所有代码进行编码。例如,
&LT; DIV&GT;需要在您的代码中表示为:&amp; lt; div&amp; gt;
所以,“&lt;”成为“&amp; lt;”和“&gt;”成为“&amp; gt;”
答案 4 :(得分:0)
我将转义保留的HTML字符(例如&lt;,&gt;,&amp;和')并查看是否允许显示数据。您可以找到完整的参考here。
但就个人而言,我很少通过textarea这样做。相反,我使用ckEditor(以前称为fckEditor)来显示和允许编辑格式丰富的文本。
答案 5 :(得分:0)
为了将HTML视为HTML并拥有知道HTML标签的文本框,您将不得不使用HTMLTextbox。 FCKEditor是一款易于使用且易于使用的编辑器。
另外,不要忘记在您的页面指令上设置validaterequest =“false”以禁用自动HTML注入测试
答案 6 :(得分:0)
这是答案。不要使用ASP.NET控件,如文本框。而是使用建议的div技术(谢谢你)。
答案 7 :(得分:0)
因为我看到的是解决方法。文本框控件上的text属性是html编码的,所以无论你将textbox.text设置为什么html,它都会显示你设置它的字面意思。
这里建议的“答案”或多或少可以解决,因为你没有维护控件,而是你一起使用另一种方法(HTML)。如果您的代码背后与此相关,则必须重写它以使用ajax或w / e来促进后面代码的功能。
而不是\ r \ n等