Извлеките текст из базы данных и отформатируйте его во внешнем интерфейсе веб-сайта.

У меня есть текст, который в настоящее время хранится в моей таблице базы данных как nvarchar. В настоящее время я извлекаю текст с помощью хранимой процедуры и привязываю его к литералу в сетке на передней панели.

Я хотел бы получить текст, а затем отформатировать его, например, вставить пробелы между строками и выделить определенные области жирным шрифтом. Возможно ли это сделать? Может ли кто-нибудь дать мне представление о том, как это можно сделать?

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

Итак, в настоящее время мой текст хранится в столбце таблицы базы данных nvarchar (max) как:

This is the heading this is the content

Что я хотел бы сделать, так это отобразить приведенное выше в виде сетки, например:

**This is a Heading** (heading in bold)
 This is the content

person CodeNinja    schedule 27.08.2013    source источник
comment
Вам нужно работать с одной строкой, не могли бы вы разделить возвращаемую строку на отдельные строки заголовка и содержимого?   -  person Luthervd    schedule 28.08.2013
comment
действительно способ сделать это - вставить текст в базу данных как html ...   -  person Hanlet Escaño    schedule 28.08.2013
comment
Мой 2c: я бы не стал хранить его как HTML в базе данных, так как вы обязательно захотите использовать его в контексте, который не хочет HTML, и вам нужно его удалить.   -  person Plymouth223    schedule 28.08.2013
comment
@ Plymouth223 - как бы вы с этим справились? SqlSamurai может хранить значения html и non-html в отдельных полях, но это потребует их синхронизации при изменении любого из них.   -  person davids    schedule 28.08.2013
comment
@davids Я бы сохранил как XML и использовал XSLT для его преобразования, что означает, что вы можете изначально анализировать его в SQL и .NET.   -  person Plymouth223    schedule 28.08.2013
comment
Единственная цель использования текста - отобразить его на веб-сайте, поэтому я могу сохранить его как html в базе данных, но я привязываю текст к литералу в сетке asp.net, поэтому как мне получить html и привязать его к буквальному ??   -  person CodeNinja    schedule 28.08.2013


Ответы (3)


Самый простой метод (который я использовал несколько раз) - сохранить html в таблице следующим образом:

<h1>This is the heading</h1>This is the content

Вам нужно будет добавить специальную обработку для работы с html, но она работает нормально.

Вы также можете сохранить строку заголовка в одном поле, а текст - в другом.

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

person davids    schedule 27.08.2013

Короткий ответ: это возможно, но требует некоторой работы.

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

Если у вас есть редактор WYSIWYG для преобразования текста в HTML, вы можете попробовать сохранить HTML. Это будет самый простой способ хранения.

Если вы решите использовать этот метод, обратите внимание, что вам нужно будет провести большую проверку на сервере, чтобы избежать атак с использованием межсайтовых сценариев. Вкратце: убедитесь, что HTML-код, который вы получаете на сервере, не содержит никаких javascript или каких-либо тегов, кроме тех, которые вы хотите поддерживать.

person Mspaja    schedule 28.08.2013

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

person Debasish    schedule 28.08.2013