Как я получаю вывод HTML UserControl в.NET (C#)?

48
задан Bhargav Rao 23 February 2019 в 21:49
поделиться

4 ответа

Можно представить управление с помощью Control.RenderControl(HtmlTextWriter).

Канал StringWriter к HtmlTextWriter.

Канал StringBuilder к StringWriter.

Ваша сгенерированная строка будет в эти StringBuilder объект.

Вот пример кода для этого решения:

StringBuilder myStringBuilder = new StringBuilder();
TextWriter myTextWriter = new StringWriter(myStringBuilder);
HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter);
myControl.RenderControl(myWriter);
string html = myTextWriter.ToString();
57
ответ дан Marcel 7 November 2019 в 12:17
поделиться

переопределите метод REnderControl

protected override void Render(HtmlTextWriter output)
{       
   output.Write("<br>Message from Control : " + Message);       
   output.Write("Showing Custom controls created in reverse" +
                                                    "order");         
   // Render Controls.
   RenderChildren(output);
}

, Это предоставит Вам доступ к писателю, в которого будет записан HTML.

можно также хотеть изучить архитектуру адаптивного управления asp.net архитектура адаптивного управления asp.net , где можно 'сформировать' вывод HTML по умолчанию от средств управления.

4
ответ дан Xian 7 November 2019 в 12:17
поделиться

Звоните это .RenderControl() метод.

1
ответ дан Joel Coehoorn 7 November 2019 в 12:17
поделиться
//render control to string
StringBuilder b = new StringBuilder();
HtmlTextWriter h = new HtmlTextWriter(new StringWriter(b));
this.LoadControl("~/path_to_control.ascx").RenderControl(h);
string controlAsString = b.ToString();
32
ответ дан 7 November 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: