我有一個div如何在特定位置的div中添加用戶控件?
<div id="PageContent" runat="server"></div>
我從代碼中添加一些HTML到它背後這樣
PageContent.InnerHtml ="<p> this is my text</p>";
現在,我怎麼可以在代碼中添加一個用戶控件背後我和文本之間,我也可以替換我的並在該位置添加用戶控件?
我不想在PageContent div中使用任何佔位符或面板。
我有一個div如何在特定位置的div中添加用戶控件?
<div id="PageContent" runat="server"></div>
我從代碼中添加一些HTML到它背後這樣
PageContent.InnerHtml ="<p> this is my text</p>";
現在,我怎麼可以在代碼中添加一個用戶控件背後我和文本之間,我也可以替換我的並在該位置添加用戶控件?
我不想在PageContent div中使用任何佔位符或面板。
這解決了我的問題
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 */ }
爲了從代碼渲染背後
+!,感謝您回覆發佈答案。 –
@DeeMac歡迎:) –
您可以使用兩個不同的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>";
我不喜歡這個解決方案。它避免了將用戶控件「注入」其他標記爲一個div的問題。感覺有點像使用兩個div來分割標記的解決方法。如果用戶控件不在那裏顯示會怎麼樣?例如,在另一個div中,'
這是我的','
',這是沒有意義的。 –我想添加用戶控件在給定的div在一個特定的位置,我添加用戶控件從後面的代碼提供的HTML div後。 –
用戶控件創建自己的自定義控件接受'templa te字符串'並且調用'.Render()' –
偉大的問題。 +1。 –