Esta documentación está archivada y no tiene mantenimiento.

Control.AddParsedSubObject (Método)

Actualización: noviembre 2007

Indica al control de servidor que se ha analizado un elemento, ya sea XML o HTML, y agrega dicho elemento al objeto ControlCollection del control de servidor.

Espacio de nombres:  System.Web.UI
Ensamblado:  System.Web (en System.Web.dll)

protected virtual void AddParsedSubObject(
	Object obj
)
protected void AddParsedSubObject(
	Object obj
)
protected function AddParsedSubObject(
	obj : Object
)

Parámetros

obj
Tipo: System.Object
Object que representa el elemento analizado.

A menos que se reemplace, este método agrega automáticamente objetos LiteralControl al objeto ControlCollection del control de servidor. Se obtiene acceso a esta colección a través de la propiedad Control.Controls.

En el siguiente ejemplo se muestra un control de servidor personalizado que utiliza el método AddParsedSubObject para determinar si los elementos declarados entre las etiquetas de apertura y cierre de este control son controles de servidor Web TextBox. En caso afirmativo, se agregan a un objeto ArrayList, items. Cuando se llama al método CreateChildControls reemplazado, se recorre en iteración la lista ArrayList y se agrega cada objeto que contiene a la ControlCollection del control de servidor personalizado.

6sd06508.alert_security(es-es,VS.90).gifNota de seguridad:

Este ejemplo tiene un cuadro de texto que acepta datos del usuario y puede suponer una amenaza para la seguridad. De forma predeterminada, las páginas web ASP.NET validan que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para obtener más información, vea Información general sobre los ataques mediante secuencias de comandos.

// 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 


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: