我的SQL服务器中有一列包含一长串文本。 (PAGE_CONTENT)我可以在我的网站上显示它,除了它显示就像在SQL服务器表中一样......一个巨大的段落......根本没有阅读的内容:(我原来的设计有这个内容打破了<br/>
标签....所以,我的问题是,如果我需要段落中的输出,我是否需要制作一堆PAGE_CONTENT_P1,PAGE_CONTENT_P2,.... PAGE_CONTENT_Pnth?这对我来说似乎不对。
那么如何设置我的stringbuilder以便文本在段落中分解?
现在我就是这样的。如果您还需要查看其他任何代码,请与我们联系。感谢
sb.Append("<h1 class=\"title\">" + ds.Tables[0].Rows[i]["PAGE_TITLE"].ToString() + "</h1> ");
sb.Append("<div class=\"row\">");
sb.Append("<div class=\"col-md-12 history\">");
sb.Append("<p class=\"text-justify\">" + ds.Tables[0].Rows[i]["PAGE_CONTENT"].ToString() + "</p> ");
sb.Append("</div>");
sb.Append("</div>");
答案 0 :(得分:2)
鉴于目前的代码,一个选择是简单地在出路时替换换行符(已在内容中)。
当前行已包含开始和结束<p>
标记:
sb.Append("<p class=\"text-justify\">" + ... + "</p> ");
因此,最简单的方法是将换行符转换为结束标记和开始标记(即</p><p>
):
...["PAGE_CONTENT"].ToString().Replace("\n", "</p><p class=\"text-justify\">")
当然,通过对内容进行第一次HTML编码来防止恶意嵌入式HTML /脚本编写可能更安全:
HttpUtility.HtmlEncode(
ds.Tables[0].Rows[i]["PAGE_CONTENT"].ToString()
).Replace("\n", "</p><p class=\"text-justify\">")
而且,正如@HABO在对该问题的评论中所建议的那样,最灵活的方法是执行以下操作:
sb.AppendLine("<div class=\"col-md-12 history\">");
foreach(string _Paragraph in
ds.Tables[0].Rows[i]["PAGE_CONTENT"].ToString().Split(new Char[] {'\n'}))
{
sb.AppendLine("<p class=\"text-justify\">");
sb.AppendLine(HttpUtility.HtmlEncode(_Paragraph));
sb.AppendLine("</p>");
}
sb.AppendLine("</div>");
答案 1 :(得分:-1)
<div style="width:500px;height:150px;overflow-y: scroll;">... your long text </div>
尝试这个,使用它,如果它是帮助