Если вы просто хотите продублировать HTML-элемент, который будет в конечном итоге отображаться (включая подключенные обработчики событий), вы можете использовать метод расширения ниже, чтобы вывести копию HTML.
/// <summary>
/// Render Control to HTML as string
/// </summary>
public static string Render(this System.Web.UI.Control control)
{
var sb = new StringBuilder();
System.IO.StringWriter stWriter = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stWriter);
control.RenderControl(htmlWriter);
return sb.ToString();
}
Затем вы можете использовать его, чтобы поместить копию в разметку aspx следующим образом:
<%= btn1.Render() %>
Если вы хотите изменить, скажем, текст в копии, вы можете сделать строку «Заменить» в визуализированном html или установить текст в исходной кнопке и сбросить ее после вызова Render
в asx, то есть:
<% btn1.Text = "Text for original button"; %>