显示SQL Server表中文本内容的多个段落

时间:2014-12-16 03:04:46

标签: c# asp.net sql-server ado.net

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

2 个答案:

答案 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>

尝试这个,使用它,如果它是帮助