我有一个多行文本框,我充当描述字段。可以使用间距和返回将大量信息添加到此文本框中。以段落格式。当我稍后以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
Label / literal看起来像这样
This is a test this is a test this is a test 1. test 2. test 3. test 4. tes
答案 0 :(得分:2)
当您在HTML中显示格式化文本时,它不会显示格式,因为HTML还有其他格式化文本的方法。所有格式化字符(换行符,制表符,等等)都计为HTML中的空格,因此它只会显示为一个大块的文本。
要显示以HTML格式化的文本,您必须将格式转换为HTML用于格式化的内容,例如:
label.Text = myText.Replace("\r\n", "<br>").Replace("\t", " ");
答案 1 :(得分:1)
我不太确定你发布了什么,但这应该有帮助
Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);
答案 2 :(得分:0)
问题是原始文本将有回车符 - 这取决于操作系统 - 用于行分隔符,但在HTML中,您需要将它们转换为<br />
以保持相同的格式。
此外,Label控件呈现为跨距。您最好使用常规div并在其上设置runat="server"
属性,以便以编程方式分配内容。
Guffa对其他角色(标签,空格等)提出了另一个好处。所有这些都需要翻译成HTML等价物。