Control.AddParsedSubObject(Object) Metoda

Definicja

Powiadamia formant serwera, że element ( XML lub HTML) został przeanalizowany i dodaje element do obiektu kontrolki ControlCollection serwera.

C#
protected virtual void AddParsedSubObject(object obj);

Parametry

obj
Object

Element Object reprezentujący przeanalizowany element.

Przykłady

Poniższy przykład to niestandardowa kontrolka serwera, która używa AddParsedSubObject metody w celu określenia, czy elementy zadeklarowane między tagami otwierania i zamykania tej kontrolki są TextBox kontrolkami serwera sieci Web. Jeśli są, są one dodawane do ArrayList obiektu . items Po wywołaniu metody przesłoniętej CreateChildControls wykonuje iterację po ArrayList obiekcie i dodaje każdy obiekt do ControlCollection kontrolki niestandardowego serwera.

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

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

Uwagi

Jeśli go nie zastąpisz, ta metoda automatycznie dodaje LiteralControl obiekty do obiektu kontrolki ControlCollection serwera. Ta kolekcja jest dostępna za pośrednictwem Control.Controls właściwości.

Dotyczy

Produkt Wersje
.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

Zobacz też