не отображается при замене текстовой строки, а затем помещается в заполнитель - PullRequest
0 голосов
/ 13 сентября 2011

Когда я читаю данные из SQL, они имеют \ r \ n для возврата каретки, поэтому я использую .Replace для преобразования \ r \ n в <br/>, но на дисплее отображаются <br/> игнорируются. Это работает, если я заменю \ r \ n на <p></p>, но это не то, что мне нужно.

<br/> игнорируются, и я нуждаюсь в них для создания новой строки.

Было бы замечательно понять, почему он это делает или как добиться того, чего я хочу добиться!

РЕДАКТИРОВАТЬ: Я обратился к опечатке в коде ниже - но это не мой вопрос - в целом. Я спросил о БР и их отображении.

HTML

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

КОД-ЗА

string strTempDetail = myReader["Detail"].ToString();
string strMoreTempDetail = strTempDetail.Replace("\r\n", "<br/>");
LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail.ToString());
PlaceHolder1.Controls.Add(UserControlSpecialOffers);

Спасибо!

Ответы [ 5 ]

1 голос
/ 14 сентября 2011

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

изменение

LiteralControl UserControlSpecialOffers = new LiteralControl(strTempDetail.ToString());

до

LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail );
0 голосов
/ 17 ноября 2011

Кто-то еще изменил файл CSS и поставил отображение BR: нет;в CSS.Из всех мест!

0 голосов
/ 14 сентября 2011

Читаете ли вы вашу строку из SQL Server? Если возникли проблемы, когда строка, считанная из столбца ntext SQL-сервера, содержала «\ n» вместо «\ r \ n» (даже если «\ r \ n» была сохранена)

Попробуйте, если string strMoreTempDetail = strTempDetail.Replace("\n", "<br/>") даст лучшие результаты.

Или для сохранения, замените оба: string strMoreTempDetail = strTempDetail.Replace("\r\n", "<br/>").Replace("\n", "<br/>")

0 голосов
/ 14 сентября 2011

Поскольку вы добавляете strTempDetail к своему буквальному элементу управления, а не strMoreTempDetail, который является строкой, в которой вы выполняли замену.

0 голосов
/ 14 сентября 2011

У вас неправильная строка в этой строке

LiteralControl UserControlSpecialOffers = new LiteralControl(strTempDetail.ToString()); 

должно быть

LiteralControl UserControlSpecialOffers = new LiteralControl(strMoreTempDetail); 
...