摘要
是否可以让服务器端控件在页面加载时不创建控件实例,而不使用<asp:PlaceHolder>
?
编辑,尽管示例代码在C#中,我已经添加了VB.NET作为标记,因为我认为这是一个特定于ASP.NET的问题,而不仅仅是C# < / p>
详情
在.aspx页面(在.NET 4.0下的ASP.NET Web应用程序中)中,我想要以下代码...
<%if (m_myVar) {%>
<uc1:MyControl1 runat="server" id="myCtrl1"/>
<%}%>
但如果MyControl1
m_myVar == false
的实例
显而易见的解决方案是使用<asp:PlaceHolder>
控件,并在代码中创建一个实例......
protected MyControl1 myCtrl1 = null;
if (m_myVar)
{
myCtrl1 = (MyControl1)Page.LoadControl(@"~/MyControl1.ascx");
myPlacehHolder.Controls.Add(myCtrl1);
}
我只是想知道是否有内置的方法来执行此操作,因此不需要<asp:PlaceHolder>
方法。
答案 0 :(得分:0)
我相信你可以这样做(原谅VB):
If m_myVar
For Each c In Page.Controls
If TypeOf c Is HtmlForm Then
Dim ctrl As New MyControl1
c.Controls.Add(ctrl)
End If
Next
End If