Можно представить управление с помощью 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();
переопределите метод 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 по умолчанию от средств управления.
//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();