2009-07-24 2 views
0

Я только что обновил страницу, чтобы использовать DetailsView в asp.net. Он включал текстовое поле MultiLine, которое теперь находится в EditItemTemplate в представлении деталей. Проблема заключается в том, что при выводе этих данных (которые хранятся в базе данных) я заменял vbCrLf (новый контур строки -> VB, возврат каретки, подачу линии) с < br/>, который работал нормально раньше, но теперь что в представлении детали это похоже на vbCrLf не существует и после замены (str, vbCrLf, «< br/>») вместо того, чтобы быть разбитым HTML (< br/>), где в текстовом поле были разрывы строк , все это отображается только в одной строке. Как я могу это исправить? Благодарю.Новая строка в textarea в detailView (asp.net)

ответ

1

Попробуйте Environment.NewLine вместо

+0

спасибо за предложение, но это, похоже, не работает. Заменяет ли linq что-то еще? Поскольку текстовое поле все еще, похоже, знает, что разрыв строки существует, но замена vbCrLf, Environment.NewLine и т. Д. И т. Д., Похоже, не знает его там. – Ryan

+0

Я не знаю, сделает ли linq что-нибудь подобное. Я просто сделал быстрый тест, где я прочитал значение, сделал замену и вывел новое значение, и это сработало просто отлично. Возможно, вам стоит попробовать отладить на обоих концах, чтобы узнать, что такое фактическое значение строки. – drs9222

0

Установите HTMLEncode ложные

+0

на каком контроле? – Ryan

+0

Я пробовал смотреть на все задействованные элементы управления, и я не вижу свойства htmlEncode в любом месте – Ryan

0

, если вы принимаете данные из базы данных, которая содержит символы новой строки, а затем просто оставить тех, кто там и TEXTAREA должно работать нормально ... Вам не нужно делать a заменить на «< BR/>« ... вам нужно сделать это, только если вы помещаете текст в страницу как HTML ... но вы пытаетесь заполнить элемент управления вводом, поэтому, если вы не делаете что-то еще, что непонятно, вам не нужно делать замену

+0

Эй, извините, если я не был ясен ... Я выводил эти данные в другом месте. Он отлично работает, когда я возвращаю его обратно в текстовое поле. Там есть разрывы строк. Когда я выхожу в HTML в другом месте (а не в textarea), вот когда я делаю замену
, но его не находит vbCrLf – Ryan

0

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

Я думаю, что вам не хватает этой точки.

Надеюсь, это поможет.

+0

Нет. Я полностью понимаю этот момент ... это противоположность моего вопроса. Я хочу получить разрывы строк, которые пользователь вводит. Например, когда пользователь вводит в линии 1 (хиты возврат) линии 2 ... Я хочу, чтобы заменить те разрывы строк с перерывами HTML строки (
), когда я его выводом на страницу. Я знаю, что текст будет переносом слов, это не проблема. – Ryan

+0

Как я уже сказал, он работал нормально, прежде чем он появился в DetailsView, но по какой-то причине представление деталей, похоже, меняет символ vbCrLf (который я заменял
, и это именно то, что я хотел) с некоторой другой строкой break, который не является vbCrLf, и поэтому при выводе на страницу не заменяется
. – Ryan

0

Я всегда заменял код символа - chr (10) в VB.NET - с < br/>, чтобы показать мои разрывы строк. Попробуй попробовать?

+0

Привет, как вы меняете код символа? Я попробовал Replace (stringField, char (10), «
»), но он говорит, что char является типом и не может использоваться в качестве выражения. – Ryan

+0

zakster82 сказал chr (10) не char (10). Я лично использую C#, поэтому я не уверен в этом, но считаю, что chr - это старая функция vb для преобразования целого числа в символ ascii. Я не уверен, существует ли он в VB.NET. Так как я также не уверен, что вы используете VB.NET или C#, я бы предложил что-то вроде System.Convert.ToChar (10), которое, как я думаю, будет работать. – drs9222