Смешно, что это происходит, поскольку я только что просмотрел некоторые из моих старых кодов вчера. Литералы могут это сделать. Я сделал это изначально, чтобы испускать пользовательские элементы управления через вызов веб-службы из Javascript (yikes, я знаю ... это было весело), но это также будет соответствовать вашим потребностям.
protected void Page_Load(object sender, EventArgs e)
{
litTest.Text = RenderUserControlAsString("WebUserControl1.ascx");
}
private string RenderUserControlAsString(string path)
{
Page page = new Page();
UserControl control = (UserControl)page.LoadControl(path);
//add the control to the page
page.Controls.Add(control);
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute(page, sw, true);
//return the rendered markup of the page, which only has our single user control
return sw.ToString();
}
Бросьте ваши буквальный на странице и присвоить это текстовое значение для RenderUserControlAsString («Путь к вашему пользовательскому элементу управления»). С учетом сказанного, в вашем пользовательском элементе управления вы должны обернуть дочерние элементы управления в элементе управления формой.
Надеюсь, что это поможет!
Это невозможно. По определению элемент управления 'Literal' может содержать только буквенную разметку, а не другие серверные элементы управления. –
Похоже, что вы «решили» половину своей проблемы. Вы можете вернуться к шагу 0 и указать, почему вы считаете, что хотите эту функциональность. http://blogs.msdn.com/b/oldnewthing/archive/2006/03/23/558887.aspx –