protected string innerHtml = "";
/* skip */
StringBuilder sb = new StringBuilder();
StringWriter stringWriter = new StringWriter(sb);
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
tr.RenderControl(htmlTextWriter);
innerHtml = sb.ToString();
Получение вложенного содержимого ContentPlaceHolder'а
Имеется следующая задача:
мне необходимо получить содержимое ContentPlaceHolder'а Content, которого в свою очередь содержит ContentPlaceHolder, а его контент тоже содержит холдер и т.д. Уровней вложенности порядочно, порядка 7-8.
Моё решение: просто решил сделать RenderControl вот так (с учётом того, что имею доступ к ContentPlaceHolder'у на верхнем уровне с ID=tr)
Код:
Что имею: в тестовом проекте, всё отрабатывает замечательно и в Page_Load я получаю содержимое холдера со всеми тегами и значениями, как статическими, так и значения, генерящиеся в asp.net-контролах.
На "живом" проекте на базе Community Server (CS) делаю тоже самое - получаю лишь статическое содержимое, т.е. то, что генерируется контролами CS мне не особо доступно, а как раз его мне и надо.
Есть, правда, исключение: на одном из разделов всё замечательно отрабатывает, но это только один раздел из 4.
Пробовал перенести код получения содержимого ContentPlaceHolder'а в Page_PreRender - не помогло.
Если у кого-нибудь есть мысли по поводу того, что ещё можно предпринять по решению сложившейся ситуации, буду благодарен за любую наводку.
Заранее спасибо.