2017-02-18 21 views
0

Я столкнулся с ситуацией, когда мне нужно получить богатый текстовый контент в столбце типа страницы и вернуть эти данные/HTML, как это было бы на отображаемой странице. Пользовательская веб-часть затем обслуживает агрегированные данные как узлы XML или JSON.Render Widget как HTML-код за кодом

По большей части это было достаточно легко в коде, использующем DocumentQuery, однако проблема связана с виджетами, которые были вставлены в содержимое.

Мой вопрос: Как «визуализировать» виджет чисто в коде? Или даже, какой процесс выполняет Kentico для визуализации виджета, который я мог бы воспроизвести?

Я немного знаком с отношением к виджетам/веб-части/пользовательскому управлению, поэтому я думаю, что веб-часть должна быть создана (где-то), используя свойства виджета, а затем получить доступ к свойству RenderedHTML веб-части.

Из-за формата, в котором виджеты хранятся в данных, я надеялся, что они могут быть просто решены с помощью MacroResolver, но это, похоже, не так.

Для справки, вот пример того, как вне коробки DateTime виджет показывает вверх: {^ виджет | (jsuseservertime) Ложные | (имя) DateTime | (widget_displayname) Дата +% 26 + время | (ширина) | (высота) ^}

Любой вход очень ценится!

+0

Зачем вам это нужно с помощью виджета? Если это содержимое некоторого поля типа страницы (даже богатый текст), вы можете просто получить treenode в коде и получить значение такого поля. – JanH

+0

Я считаю, что он говорит, что это часть столбца DocumentContent в базе данных CMS_Document, IE - текст, используемый в веб-части «Редактируемый текст». –

+0

Уточнение: мы используем настраиваемые поля типа страницы с типом данных Long Text/Rich Text, которые позволяют кому-либо вводить богатый контент и пользовательские виджеты через вид формы. Так упрощенно, например, если богатые текстовое поле имеет содержание: «Привет, добро пожаловать на сайт Текущее время » Выход при получении соответствующего столбца базы данных будет: «Привет, добро пожаловать на данный момент. « Виджеты, очевидно, более сложны, и страницы не обязательно имеют шаблон из-за страниц типа« Контейнер ». –

ответ