Control.AddParsedSubObject-Methode
Benachrichtigt das Serversteuerelement, dass entweder ein XML- oder ein HTML-Element analysiert wurde, und fügt das Element dem ControlCollection-Objekt des Serversteuerelements hinzu.
Namespace: System.Web.UI
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Protected Overridable Sub AddParsedSubObject ( _
obj As Object _
)
'Usage
Dim obj As Object
Me.AddParsedSubObject(obj)
protected virtual void AddParsedSubObject (
Object obj
)
protected:
virtual void AddParsedSubObject (
Object^ obj
)
protected void AddParsedSubObject (
Object obj
)
protected function AddParsedSubObject (
obj : Object
)
Parameter
- obj
Ein Object, das das analysierte Element darstellt.
Hinweise
Wenn Sie diese Methode nicht überschreiben, fügt sie dem ControlCollection-Objekt des Steuerelements automatisch LiteralControl-Objekte hinzu. Auf diese Auflistung kann über die Control.Controls-Eigenschaft zugegriffen werden.
Beispiel
Im folgenden Beispiel wird ein benutzerdefiniertes Serversteuerelement veranschaulicht, das mithilfe der AddParsedSubObject-Methode bestimmt, ob es sich bei den zwischen den öffnenden und schließenden Tags dieses Steuerelements deklarierten Elementen um TextBox-Webserver-Steuerelemente handelt. Wenn ja, werden diese dem ArrayList-Objekt items
hinzugefügt. Wenn die überschriebene CreateChildControls-Methode aufgerufen wird, durchläuft diese die ArrayList und fügt jedes darin enthaltene Objekt der ControlCollection des benutzerdefinierten Serversteuerelements hinzu.
' Custom ControlBuilder class. Interprets nested tag name "myitem" as a textbox.
Public Class MyControlBuilder
Inherits ControlBuilder
Public Overrides Function GetChildControlType(tagName As String, _
attributes As IDictionary) As Type
If String.Compare(tagName, "myitem", True) = 0 Then
Return GetType(TextBox)
End If
Return Nothing
End Function
End Class
<ControlBuilderAttribute(GetType(MyControlBuilder))> Public Class MyControl
Inherits Control
' Stores all the controls specified as nested tags.
Private items As New ArrayList()
' This function is internally invoked by IParserAccessor.AddParsedSubObject(Object).
Protected Overrides Sub AddParsedSubObject(obj As Object)
If TypeOf obj Is TextBox Then
items.Add(obj)
End If
End Sub
' Override 'CreateChildControls'.
Protected Overrides Sub CreateChildControls()
Dim myEnumerator As System.Collections.IEnumerator = items.GetEnumerator()
While myEnumerator.MoveNext()
Me.Controls.Add(CType(myEnumerator.Current, TextBox))
End While
End Sub
End Class
// Custom ControlBuilder class. Interprets nested tag name "myitem" as a textbox.
public class MyControlBuilder : ControlBuilder
{
public override Type GetChildControlType(String tagName,
IDictionary attributes)
{
if (String.Compare(tagName, "myitem", true) == 0)
{
return typeof(TextBox);
}
return null;
}
}
[
ControlBuilderAttribute(typeof(MyControlBuilder))
]
public class MyControl : Control
{
// Store all the controls specified as nested tags.
private ArrayList items = new ArrayList();
// This function is internally invoked by IParserAccessor.AddParsedSubObject(Object).
protected override void AddParsedSubObject(Object obj)
{
if (obj is TextBox)
{
items.Add(obj);
}
}
// Override 'CreateChildControls'.
protected override void CreateChildControls()
{
System.Collections.IEnumerator myEnumerator = items.GetEnumerator();
while(myEnumerator.MoveNext())
this.Controls.Add((TextBox)myEnumerator.Current);
}
}
// Custom ControlBuilder class. Interprets nested tag name "myitem" as
// a textbox.
public class MyControlBuilder extends ControlBuilder
{
public Type GetChildControlType(String tagName, IDictionary attributes)
{
if (String.Compare(tagName, "myitem", true) == 0) {
return TextBox.class.ToType();
}
return null;
} //GetChildControlType
} //MyControlBuilder
/** @attribute ControlBuilderAttribute(MyControlBuilder.class)
*/
public class MyControl extends Control
{
// Store all the controls specified as nested tags.
private ArrayList items = new ArrayList();
// This function is internally invoked by
// IParserAccessor.AddParsedSubObject(Object).
protected void AddParsedSubObject(Object obj)
{
if (obj instanceof TextBox) {
items.Add(obj);
}
} //AddParsedSubObject
// Override 'CreateChildControls'.
protected void CreateChildControls()
{
System.Collections.IEnumerator myEnumerator = items.GetEnumerator();
while (myEnumerator.MoveNext()) {
this.get_Controls().Add((TextBox)myEnumerator.get_Current());
}
} //CreateChildControls
} //MyControl
Plattformen
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Control-Klasse
Control-Member
System.Web.UI-Namespace
ControlCollection