从Web部件中的List属性呈现HTML

时间:2011-11-07 10:19:38

标签: sharepoint htmltextwriter

我正在尝试从SharePoint列表中读取一些值,并将它们作为HTML呈现在我的页面中。但是,它会在Web部件页面上显示HTML标记,并且无法呈现它。

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
  writer.WriteLine("<br />"); // this works
  writer.WriteLine(htbl["key"].ToString()); // html fails to render. literally renders the HTML in the string
}

我已经看过以下方法:

  1. Text to HTML - 我认为提到的JavaScript似乎有点矫枉过正。有没有更简单的方法来实现这个目标?
  2. 请告知。

2 个答案:

答案 0 :(得分:0)

克里斯,

你究竟在单行文字中添加了什么?

我尝试了以下操作,这没有任何问题。如果将其与webpart类进行比较,您是否看到了差异?

   using System;
    using System.ComponentModel;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;   

 namespace test.WebPart1
    {
        [ToolboxItemAttribute(false)]
        public class WebPart1 : WebPart
        {
            protected override void CreateChildControls()
            {

            }

            protected override void Render(HtmlTextWriter writer)
            {
                SPWeb web = SPContext.Current.Web;
                SPList list = web.Lists["testlist"];
                foreach (SPListItem item in list.Items)
                {
                    writer.Write(item["testcolumn"].ToString());
                }
            }
        }
    }

答案 1 :(得分:-1)

原因是该列是多行文本,并且允许的文本类型设置为“富文本(粗体,斜体,文本对齐)”,因此无法正确呈现HTML。决议是将其更改为纯文本。