防止其他服务器控件作为自定义ASP.NET控件的子控件
除了创建自定义的防止其他服务器控件作为自定义ASP.NET控件的子控件,asp.net,webforms,custom-server-controls,Asp.net,Webforms,Custom Server Controls,除了创建自定义的ControlBuilder类之外,是否有其他方法可以防止服务器控件作为子控件添加到自定义ASP.NET控件中 例如,假设我正在构建自己的面板控件: <my:SpecialPanel ID="SpecialPanel1" runat="server"> <!-- Allow valid HTML --> <input id="tbEmailAddress" type="text" /> </my:SpecialPanel&
ControlBuilder
类之外,是否有其他方法可以防止服务器控件作为子控件添加到自定义ASP.NET控件中
例如,假设我正在构建自己的面板
控件:
<my:SpecialPanel ID="SpecialPanel1" runat="server">
<!-- Allow valid HTML -->
<input id="tbEmailAddress" type="text" />
</my:SpecialPanel>
有什么建议吗?您可以覆盖该方法:
相关资源:
<my:SpecialPanel ID="SpecialPanel1" runat="server">
<!-- WRONG - Throw an Exception -->
<asp:TextBox ID="tbEmailAddress" runat="server" />
</my:SpecialPanel>
public class SpecialPanel : Control
{
protected override void AddParsedSubObject(Object obj)
{
if (obj is Control)
{
throw new InvalidOperationException(
"The 'SpecialPanel' control cannot contain server controls");
}
}
}