1

我正在尝试从 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. 文本到HTML——在我看来,提到的 JavaScript 似乎有点过头了。有没有更简单的方法可以做到这一点?

请指教。

4

2 回答 2

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());
                }
            }
        }
    }
于 2011-11-07T11:51:39.177 回答
-1

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

于 2011-11-07T18:20:18.503 回答