Control.AddParsedSubObject(Object) Yöntem

Tanım

Sunucu denetimine XML veya HTML gibi bir öğenin ayrıştırıldığını bildirir ve öğeyi sunucu denetiminin ControlCollection nesnesine ekler.

C#
protected virtual void AddParsedSubObject(object obj);

Parametreler

obj
Object

Object Ayrıştırılmış öğeyi temsil eden bir.

Örnekler

Aşağıdaki örnek, bu denetimin açma ve kapatma etiketleri arasında bildirilen öğelerin Web sunucusu denetimleri olup olmadığını belirlemek için yöntemini kullanan AddParsedSubObject özel bir sunucu denetimidir TextBox . Varsa, bir ArrayList nesnesine eklenirler. items Geçersiz kılınan CreateChildControls yöntem çağrıldığında üzerinden yinelenir ArrayList ve içindeki ControlCollection her nesneyi özel sunucu denetimine ekler.

Önemli

Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.

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

Açıklamalar

Geçersiz kılmadığınız sürece, bu yöntem nesneleri otomatik olarak sunucu denetiminin ControlCollection nesnesine eklerLiteralControl. Bu koleksiyona özelliği aracılığıyla Control.Controls erişilebilir.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.