Замена тега в многострочном текстовом поле asp

#asp.net

#asp.net

Вопрос:

Я работаю с текстовым полем в сетке данных. Перед сохранением данных в базе данных я заменяю новую строку с <br> помощью следующего скрипта :

 description.Replace(Environment.NewLine, "<br>")
 

Работает нормально, он заменяет новую строку на <br> . Затем мне нужно снова извлечь данные в текстовое поле для редактирования. Я попытался заменить <br> на новую строку, используя следующий скрипт :

 data.description = ((TextBox)dgrid.Items[i].FindControl("description")).Text;
data.description = data.description.Replace("<br>", "rn");
 

Но это не работает, у вас, ребята, есть какие-либо решения для этого?

Ответ №1:

Вы не возвращаете текстовое значение обратно, вы меняете данные.описание. Попробуйте изменить его на что-то вроде

 Textbox txt = ((TextBox)dgrid.Items[i].FindControl("description"));
txt.Text = txt.Text.Replace("<br>", Environment.NewLine);
 

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

Комментарии:

1. ДА. я знаю, что это сложно, не видя полного сценария, но он будет слишком перегружен. вопрос: я попробовал ((TextBox)dgrid.Items[i].FindControl("description")); , но он вернул ошибку. можно ли оставить его без .Text ?

2. ((Текстовое поле) dgrid. Элементы [i].FindControl(«описание»)) должны возвращать вам сам элемент управления текстовым полем. Если это не так, то сетка не находит этот элемент управления. Я пытался сократить его, но вы могли бы попробовать string s = ((TextBox)dgrid . Элементы[i].FindControl(«описание»)).Текст; ((Текстовое поле)dgrid. Элементы[i].FindControl(«описание»)). Text = s.Replace(«<br>», «rn»);

3. Рекомендуется использовать Environment.NewLine вместо «r n».

4. я, наконец, решил это. спасибо Дузеру Блейку за точку зрения. также для @rickschott !