Ler em inglês

Compartilhar via


Control.AddParsedSubObject(Object) Método

Definição

Notifica o controle de servidor de que um elemento, XML ou HTML, foi analisado e adiciona o elemento ao objeto ControlCollection do controle de servidor.

protected virtual void AddParsedSubObject(object obj);

Parâmetros

obj
Object

Um Object que representa o elemento analisado.

Exemplos

O exemplo a seguir é um controle de servidor personalizado que usa o AddParsedSubObject método para determinar se os elementos declarados entre as marcas de abertura e fechamento desse controle são TextBox controles de servidor Web. Se estiverem, serão adicionados a um ArrayList objeto , items. Quando o método substituído CreateChildControls é chamado, ele itera por meio do ArrayList e adiciona cada objeto nele ao ControlCollection do controle de servidor personalizado.

Importante

Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos html ou script. Para obter mais informações, consulte Visão geral de explorações de script.

// 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);
   }
}    

Comentários

A menos que você o substitua, esse método adiciona LiteralControl automaticamente objetos ao objeto do controle de ControlCollection servidor. Essa coleção é acessível por meio da Control.Controls propriedade .

Aplica-se a

Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Confira também