#c# #asp.net #html #render
#c# #asp.net #HTML #рендерить
Вопрос:
Есть способ получить html-значение div в событии рендеринга страницы со многими asp: Label внутри?
protected override void Render(HtmlTextWriter writer)
{
// *** Write the HTML into this string builder
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter hWriter = new HtmlTextWriter(sw);
base.Render(hWriter);
string valdiv = DivCliente.InnerHtml;
// *** store to a string
string PageResult = sb.ToString();
...........
}
Таким образом, я получаю всю страницу в PageResult (это почти то, что я хочу), но я хочу только html-результат определенного div (с известным идентификатором), чтобы распечатать этот html-код (со всеми теми метками, которые теперь отображаются как текст) в формате pdf.
Я пытался использовать свойство innerHTML div, но я получаю исключение «Вы не можете получить внутреннее значение div, потому что это не литерал»
Есть идея?
Спасибо!
Дэвид.
Ответ №1:
Я немного устал от своего кодирования WebForms, но вы не можете просто сделать DivCliente.Render(my writer)
или что-то подобное?
http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlcontrol.render.aspx
Это может иметь некоторые непреднамеренные побочные эффекты на состояние элемента управления div, я не уверен.
Зачем вам нужно содержимое DIV?
Комментарии:
1. Спасибо, он просто использовал DivCliente. RenderControl(hWriter); результат строки= sb.toString(); И тогда я получил это! 🙂 Мне нужен html, чтобы распечатать его в PDF-файл.