我正试图从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
}
我已经看到了以下方法:
- 文本到HTML -在我看来,提到的JavaScript似乎是多余的。难道没有更简单的方法来实现这一点吗?
请建议。
Kris,
你在这一行文字里到底放了什么?
我尝试了以下操作,没有任何问题。如果你将它与你的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());
}
}
}
}
原因是该列是多行文本,并且允许的文本类型被设置为"富文本(粗体,斜体,文本对齐)",因此无法正确呈现HTML。解决方法是将其更改为纯文本。