0

我有一个多行文本框,用作描述字段。可以使用空格和回车向此文本框添加大量信息。以段落格式。当我稍后显示此文本时,Label我失去了所有格式,它变成了一堵文本墙。我能做些什么来保持原始格式吗?

var customerInfo = GetCustomerInfo(itemid);

                if (customerInfo != null)
                {
                    ItemID.Text = customerInfo.ItemID.ToString();

                    Description.Text = customerInfo.Description;

                }

页面来源看起来像这样

                This is a test

this is a test 

this is a test
1. test
2. test
3. test
4. tes

标签/文字看起来像这样

This is a test this is a test  this is a test 1. test 2. test 3. test 4. tes
4

3 回答 3

2

当您在 HTML 中显示格式化的文本时,它不会显示为格式化的,因为 HTML 有其他格式化文本的方法。所有格式化字符(换行符、制表符等)在 HTML 中都算作空格,因此它只会显示为一大块文本。

要显示 HTML 格式的文本,您必须将格式转换为 HTML 用于格式化的格式,例如:

label.Text = myText.Replace("\r\n", "<br>").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
于 2012-12-19T21:52:08.760 回答
1

如果您不发布其他内容,我不太确定,但这应该会有所帮助

 Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);
于 2012-12-19T21:51:07.517 回答
0

问题是原始文本将有回车 - 这将根据操作系统而有所不同 - 用于行分隔符,但在 HTML 中,您需要翻译它们<br />以保持相同的格式。

此外,标签控件呈现为跨度。您可能最好使用常规 div 并runat="server"在它们上设置属性,以便您可以以编程方式分配内容。

Guffa 对其他字符(制表符、空格等)提出了另一个好观点。所有这些都需要翻译成 HTML 等价物。

于 2012-12-19T21:55:51.333 回答