Sharepoint: отображать текстовое поле в виде HTML - PullRequest
0 голосов
/ 23 октября 2009

У меня есть список Sharepoint, где один из столбцов - простой текст - Описание. Когда вы редактируете элемент списка, поле Описание обычно является TextArea. Я запрограммировал, что эта TextArea расширена с помощью JavaScript, чтобы принимать расширенный текст (действительно HTML), поэтому у меня есть свое настраиваемое поле расширенного текста. Проблема в том, что при вводе расширенных данных все выглядит хорошо, но когда я сохраняю отредактированный элемент и затем отображаю его, текст отображается в виде обычного текста, а не HTML, поэтому вместо полужирного текста я получаю " текст". И я хотел бы, чтобы это отображалось как HTML. Что я могу с этим сделать?

Редактировать: я не хочу использовать встроенный редактор, потому что мне нужно другое поведение.

Ответы [ 3 ]

2 голосов
/ 23 октября 2009

Код, который читает текст, введенный из формы и сохраняет его в списке, будет выполнять операцию HTMLEncode , которая заменяет

< with &lt;
> with &gt;

и т. Д. (Посмотрите наисточник страницы после сохранения)

Это происходит "на стороне сервера", поэтому вы не сможете изменить это с помощью JavaScript.

У вас есть два варианта, я думаю

  • Как уже упоминалось в F5, вы можете создать пользовательский тип поля со своим поведением для рендеринга и обновления.Это «правильный» способ сделать это.

  • Вы можете изменить свой фанк-javascript для работы с форматированным текстовым полем, взломать рендеринг встроенного RTE и заменить его наваш собственный.

Конечно, как только вы принимаете ввод от пользователя и затем переводите его обратно на свою веб-страницу, вы открываете себя для всех видов мерзостей, таких как Межсайтовый скриптинг , если вы не отфильтровываете потенциально плохие вещи (сама причина использования HtmlEncode) - меньше проблем на типичном сайте SharePoint в интрасети, чем на общедоступном сайте.

0 голосов
/ 26 октября 2009

Итак, где именно данные отображаются неправильно: в форме отображения списка или в макете страницы? Если это в макете страницы, исправить это легко: создайте пользовательский элемент управления Field, который будет извлекать значение поля (например, SPContext.Current.ListItem ["YourField"]) и декодировать содержимое, чтобы получить HTML вместо закодированных сущностей HTML.

0 голосов
/ 23 октября 2009

SharePoint поддерживает расширенные текстовые столбцы, используя собственный встроенный редактор. Вам просто нужно изменить настройки столбца, чтобы он позволял форматировать текст.

Если вы используете редактор JavaScript из-за совместимости браузера со встроенным редактором форматированного текста, то SharePoint всегда будет отбирать html из всего, что было введено, поскольку он ожидает, что ввод будет простым текстом.

Ваши комментарии

Если вы хотите, чтобы поле отображалось в форматированном тексте, оно должно быть полем для форматированного текста. Если вы установите его в виде обычного текста, вы всегда потеряете свое форматирование.

Вам необходимо просмотреть типы пользовательских полей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...