我有一个列表视图,它在ItemTemplate中执行类似的操作:
<div><%# Eval("QualificationDescription") %></div>
我的问题是QualificationDescription中有换行符,如果我把它放在TextBox中它会显示它们但是如果我把它放在div中则不会。反正有没有在div中显示换行符?
答案 0 :(得分:0)
换行符必须在div中呈现为<br/>
标记(更多的语义解决方案是将所有损坏的文本片段包装在<p>
标记内。)
您最好的办法是提出一个简单的ViewModel,将\n
转换为<br/>
,或者使用段落解决方案。
答案 1 :(得分:0)
我要做的是调用DataBind()事件然后添加一个ItemDataBound,然后创建一个新的文字,然后添加到文字的文本中添加QualificationDescription
然后在aspx页面中将div更改为,然后将description.InnerText作为文字
答案 2 :(得分:0)
将换行符\n
\r
\r\n
替换为<br/>
或使用pre
代码而不是div。
答案 3 :(得分:0)
我同意Pierreten的观点,用<br />
标签替换换行符的方法是一个不错的选择。另一种可能性是在div中使用<pre>
标记。这将表明浏览器应该将内容呈现为预先格式化,并在标记的内容中显示换行符。
答案 4 :(得分:0)
您可以使用以下代码执行此操作
<div><%# AddLineBreaks(Eval("QualificationDescription")) %></div>
代码隐藏:
protected static string AddLineBreaks(object qualDescription) {
if (qualDescription == null) {
return "";
}
return qualDescription.ToString().Replace(Environment.NewLine, "<br/>");
}