Exporter (0) Imprimer
Développer tout
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Control.AddParsedSubObject, méthode

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

Espace de noms : System.Web.UI
Assembly : System.Web (dans system.web.dll)

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

Paramètres

obj

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

Si vous ne la substituez pas, cette méthode ajoute automatiquement des objets LiteralControl à l'objet ControlCollection du contrôle serveur. Cette collection est accessible à l'aide de la propriété Control.Controls.

L'exemple suivant illustre un contrôle serveur personnalisé qui utilise la méthode AddParsedSubObject pour déterminer si des éléments déclarés entre les balises d'ouverture et de fermeture de ce contrôle sont des contrôles serveur Web TextBox. Si c'est le cas, ils sont ajoutés à un objet ArrayList, items. La méthode CreateChildControls substituée, lorsqu'elle est appelée, parcourt la ArrayList et ajoute chacun des objets qui y figurent à la ControlCollection du contrôle serveur personnalisé.

// 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 98, Windows 2000 SP4, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.