Отображение HTML из свойства List в веб-части - PullRequest
1 голос
/ 07 ноября 2011

Я пытаюсь прочитать некоторые значения из списка 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
}

Я уже видел следующие подходы:

  1. Текст в HTML - на мой взгляд, упомянутый JavaScript кажется излишним.Нет ли более легкого способа сделать это?

Пожалуйста, сообщите.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Причина была в том, что столбец состоял из нескольких строк текста, а тип разрешенного текста был установлен на «Rich text (полужирный шрифт, курсив, выравнивание текста)», что не позволяло правильно отображать HTML.Решение состоит в том, чтобы изменить его на обычный текст.

0 голосов
/ 07 ноября 2011

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());
                }
            }
        }
    }
...