Composite Control vs Web-Benutzersteuerelement
Ein Composite Control wird aus mehreren bestehenden Controls zusammengesetzt. Oberklasse ist System.Web.UI.Control. In diesem Fall muss der Entwickler die Methode CreateChildControls() überschreiben und dort die beteiligten Steuerelemente der Controls-Collection hinzufügen. Ein Composite Control ist einem User Control sehr ähnlich. Neben dem Unterschied, dass das Composite Control in Form einer Assembly (dll) und das User Control in Form einer Quellcodedatei (ascx) verbreitet wird, besteht der Unterschied darin, dass das User Control leichter zu erstellen ist. Dagegen bietet aber das Composite Control dem späteren Nutzer mehr Vorteile als ein User Control.
Ein Beispiel von Composite Control (vb), der aus einer Tabelle und einem Label mit Text "Hallo" besteht:
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
<ToolboxData("<{0}:myCompositeControl runat=server></{0}:myCompositeControl>")> _
Public Class SonderTable
Inherits CompositeControl
Private tb As New Table
Private tr As New TableRow
Private tc As New TableCell
Private lbl As New LabelProtected Overrides Sub CreateChildControls()
Me.tb = New Table
Me.tb.CellPadding = 0
Me.tb.CellSpacing = 0
Me.tb.BorderWidth = 0
Me.tb.Width = "366"
Me.tr = New TableRow
Me.tc = New TableCellMe.lbl = New Label
Me.lbl.Font.Bold = True
Me.lbl.Text = "Hallo"Me.tc.Controls.Add(Me.lbl)
Me.tr.Controls.Add(Me.tc)
Me.tb.Controls.Add(Me.tr)Me.Controls.Add(Me.tb)
End SubEnd Class