ControlBuilder.OnAppendToParentBuilder(ControlBuilder) 方法

定义

通知 ControlBuilder 正在将它添加到父控件生成器。

public:
 virtual void OnAppendToParentBuilder(System::Web::UI::ControlBuilder ^ parentBuilder);
public virtual void OnAppendToParentBuilder (System.Web.UI.ControlBuilder parentBuilder);
abstract member OnAppendToParentBuilder : System.Web.UI.ControlBuilder -> unit
override this.OnAppendToParentBuilder : System.Web.UI.ControlBuilder -> unit
Public Overridable Sub OnAppendToParentBuilder (parentBuilder As ControlBuilder)

参数

parentBuilder
ControlBuilder

将当前生成器添加到的 ControlBuilder 对象。

示例

此示例重写方法 OnAppendToParentBuilder 以检查 ControlType 属性以确定此生成器应用于的控件类型。 如果是, CustomTextBox生成器将检查该属性的值 HasAspCode 是否包含在控件中。 如果是这样,则会引发异常(如果未调用该方法 HasBody )。

using System;
using System.Web.UI;
using System.Web;
using System.Security.Permissions;

namespace ASPNET.Samples
{
    [
    AspNetHostingPermission(SecurityAction.Demand,
        Level=AspNetHostingPermissionLevel.Minimal)
    ]
    public class AppendControlBuilder : ControlBuilder
    {
        // Override the OnAppendToParentBuilder method.
        public override void OnAppendToParentBuilder(ControlBuilder parentBuilder)
        {
            // Check whether the type of the control this builder
            // is applied to is CustomTextBox. If so, check whether
            // ASP code blocks exist in the control. If so, call
            // throw an Exception, if not, call the HasBody method.        
            if (ControlType == Type.GetType("CustomTextBox"))
            {
                if (HasAspCode)
                    throw new Exception("This control cannot contain code blocks.");
                else
                    HasBody();
            }
        }
    }
}
Imports System.Web.UI
Imports System.Web
Imports System.Security.Permissions

Namespace ASPNET.Samples

   <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
   Public NotInheritable Class AppendControlBuilder
      Inherits ControlBuilder

      ' Override the OnAppendToParentBuilder method.
      Overrides Public Sub OnAppendToParentBuilder( _
         ByVal parentBuilder As ControlBuilder _
      )
            ' Check whether the type of the control this builder
            ' is applied to is CustomTextBox. If so, check whether
            ' ASP code blocks exist in the control. If so, call
            ' throw an Exception, if not, call the HasBody method.        
            If ControlType Is Type.GetType("CustomTextBox") Then
                If HasAspCode = True Then
                    Throw New Exception("This control cannot contain code blocks.")
                Else
                    HasBody()
                End If
            End If

        End Sub

   End Class

End Namespace

适用于