получить HTML-код определенного div в событии рендеринга

#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-файл.