显示 SQL 服务器表中文本内容中的多个段落

本文关键字:段落 服务器 SQL 中文 文本 显示 | 更新日期: 2023-09-27 18:34:22

我的SQL服务器中有一列包含一长串文本。(PAGE_CONTENT)我可以在我的网站上显示它,但它的显示就像在 SQL 服务器表中一样......一大段...读起来一点也不好玩:(我的原始设计用<br/>标签破坏了此内容......所以,我的问题是,如果我需要段落中的输出,我是否需要制作一堆PAGE_CONTENT_P1,PAGE_CONTENT_P2,....PAGE_CONTENT_Pnth?这对我来说似乎是错误的。

那么如何设置我的字符串生成器,以便将文本分解为段落呢?

这就是我现在拥有它的方式。如果您需要查看任何其他代码,请告诉我。谢谢

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>");

显示 SQL 服务器表中文本内容中的多个段落

鉴于当前的代码,一种选择是在出路时简单地替换换行符(已经在内容中)。

当前行已包含开始和结束<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>");
<div style="width:500px;height:150px;overflow-y: scroll;">... your long text </div>

试试这个,使用它,如果有帮助的话