#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 !