Как отобразить HTML в текстовой области

Уважаемые, я сохраняю форматированный текст (жирный, измененный шрифт, стиль и т. д.) в поле nvarchar (max), это для некоторого поля описания, на другом этапе я хочу иметь возможность редактировать это описание, поэтому в Страница редактирования, я читаю исходную информацию, заполняю поля и жду, пока пользователь изменит ее и сохранит, это работает для всех видов обычных текстовых полей, а также с обычным текстом, отображаемым в текстовой области, но когда Я заполняю текстовую область стилизованным текстом, он показывает HTML-код, а не результат, поэтому, например, он показывает:

<span style="font-weight: bold; text-decoration: line-through;">SM</span><span style="background-color: rgb(51, 102, 255);">ART</span><br>

Вместо того, как это должно выглядеть, любые предложения о том, как я могу заставить textArea (обычное текстовое поле asp.net с многострочным режимом) отображать HTML, как он должен выглядеть, а не код ??


person Maen    schedule 08.04.2009    source источник


Ответы (3)


Вы не можете отобразить результат HTML в элементе управления TextArea/TextBox. Но для отображения результата HTML у вас есть много вариантов.

Как сказал Шнале, лучший и самый простой способ использовать редактор. Например, tinyMCE или FCKEditor.

В проекте я использовал div для отображения и редактирования содержимого HTML. Он позволяет пользователям редактировать, копировать, вставлять, выделять жирным шрифтом, выделять курсивом и т. д.:

<div runat="server" ID="divContent" contenteditable="true"> 
    Editable Area, set your content here...
</div>

Может быть, вы можете комбинировать textarea и div, чтобы делать то, что вы хотите.

person Canavar    schedule 08.04.2009

вам нужен wysiwyg-редактор, такой как tinyMCE http://tinymce.moxiecode.com/

person stefs    schedule 08.04.2009
comment
Я использую NiceEdit, но проблема на этой странице, потому что я использую вкладки Ajax, она вообще не показывает панель инструментов NiceEdit, в чем, по-вашему, проблема? - person Maen; 08.04.2009
comment
невидимы только панели инструментов или редактор вообще не работает? я точно не знаю, в чем проблема, но может ли быть, что niceedit инициализируется onDomLoaded, и, возможно, он не обновляется после вызова ajax. попробуйте вызвать bkLib.onDomLoaded(nicEditors.allTextAreas); после получения результатов. - person stefs; 08.04.2009
comment
возможно, есть способ активировать niceedit для отдельных текстовых полей. глядя на документы (wiki.nicedit.com/Javascript+API), я бы попробовал кое-что например: ‹pre›‹code›var myNicEditor = new nicEditor(); myNicEditor.panelInstance('someElementID');‹/code›‹/pre› - person stefs; 08.04.2009
comment
Я обнаружил, что с идентификатором в скрипте что-то не так, я не могу напрямую использовать идентификатор текстовой области, мне пришлось написать «‹%= TextareaID.CurrentID %›», и теперь он работает: P - person Maen; 08.04.2009

Если вы просто хотите, чтобы он отображал код, используйте как ‹ и как >. Например:

<textarea>
&lt;html&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea>
person EandCProducts    schedule 17.02.2012