如何在特定位置的div中添加用户控件?

时间:2013-10-08 12:55:58

标签: c# html asp.net c#-4.0 user-controls

我有一个div

<div id="PageContent" runat="server"></div>

我正在从这样的代码中添加一些HTML

PageContent.InnerHtml ="<p> this is my text</p>";

现在我如何从 my text 之间的代码添加用户控件,我还可以替换我的并在该位置添加用户控件吗?

我不想在PageContent div中使用任何占位符或面板。

2 个答案:

答案 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>";