Lire en anglais

Partager via


Control.AddParsedSubObject(Object) Méthode

Définition

Avertit le contrôle serveur qu’un élément XML ou HTML a été analysé, et ajoute l’élément à l’objet ControlCollection du contrôle serveur.

protected virtual void AddParsedSubObject (object obj);

Paramètres

obj
Object

Object qui représente l’élément analysé.

Exemples

L’exemple suivant est un contrôle serveur personnalisé qui utilise la méthode pour déterminer si les AddParsedSubObject éléments déclarés entre les balises d’ouverture et de fermeture de ce contrôle sont TextBox des contrôles serveur Web. Si c’est le cas, ils sont ajoutés à un ArrayList objet, items. Lorsque la méthode remplacée CreateChildControls est appelée, elle itère au sein du ArrayList et y ajoute chaque objet au ControlCollection du contrôle serveur personnalisé.

Important

Cet exemple comprend une zone de texte qui accepte une entrée d'utilisateur, ce qui constitue une menace potentielle pour la sécurité. Par défaut, les pages web ASP.NET vérifient que l’entrée d’utilisateur n’inclut pas de script ou d’éléments HTML. Pour plus d’informations, consultez Vue d’ensemble des attaques 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);
   }
}    

Remarques

À moins que vous ne la substituiez, cette méthode ajoute LiteralControl automatiquement des objets à l’objet du ControlCollection contrôle serveur. Cette collection est accessible via Control.Controls la propriété .

S’applique à

Voir aussi