我有一个div
<div id="PageContent" runat="server"></div>
我正在从这样的代码中添加一些HTML
PageContent.InnerHtml ="<p> this is my text</p>";
现在我如何从 my 和 text 之间的代码添加用户控件,我还可以替换我的并在该位置添加用户控件吗?
我不想在PageContent div中使用任何占位符或面板。
答案 0 :(得分:1)
这解决了我的问题
public string RenderControlToHtml(Control ControlToRender)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.IO.StringWriter stWriter = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stWriter);
ControlToRender.RenderControl(htmlWriter);
return sb.ToString();
}
var message = "<p>this is my {0} text</p>";
var ctrl1 = new UserControl1();
PageContent.InnerHtml = String.Format(message,RenderControlToHtml(ctrl1));
您还需要添加
public override bool EnableEventValidation
{
get { return false; }
set { /* Do nothing */}
}
public override void VerifyRenderingInServerForm(Control control)
{ /* Do nothing */ }
为了从代码后面呈现用户控件
答案 1 :(得分:-1)
你可以使用两个不同的div来做。
例如:
<div id="PageContentBegin" runat="server"></div>
<ucl id="UserControlId" runat="server" Visible="False"></ucl>
<div id="PageContentEnd" runat="server"></div>
PageContentBegin.InnerHtml ="<p> this is my </p>";
UserControlId.Visible = True
PageContentBegin.InnerHtml ="<p> text </p>";