Визуализация HTML из свойства List в веб-части
Я пытаюсь прочитать некоторые значения из списка SharePoint и отобразить их на моей странице в виде HTML. Однако он буквально показывает теги 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 кажется излишним. Нет ли более легкого способа сделать это?
Пожалуйста, порекомендуйте.
2 ответа
Kris,
что именно вы помещаете в единственную строку текста?
Я попробовал следующее, и это работало без проблем. Если вы сравните это с вашим классом веб-частей, видите ли вы различия?
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());
}
}
}
}
Причина заключалась в том, что столбец состоял из нескольких строк текста, а разрешенный тип текста был установлен на "Rich text (полужирный шрифт, курсив, выравнивание текста)", что не позволяло правильно отображать HTML. Решение состоит в том, чтобы изменить его на обычный текст.