Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Control.AddParsedSubObject (Object)

 

Notifica al controllo server che un elemento, XML o HTML, è stato analizzato e aggiunge l'elemento all'oggetto ControlCollection del controllo server.

Spazio dei nomi:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)

protected virtual void AddParsedSubObject(
	object obj
)

Parametri

obj

Oggetto Object che rappresenta l'elemento sottoposto ad analisi.

A meno che non venga sottoposto a override, questo metodo aggiunge automaticamente gli oggetti LiteralControl all'oggetto ControlCollection del controllo server.È possibile accedere a questo insieme tramite la proprietà Control.Controls.

Nell'esempio che segue vien illustrato un controllo server personalizzato che utilizza il metodo AddParsedSubObject per determinare se gli elementi dichiarati tra i tag di apertura e di chiusura del controllo sono controlli server Web TextBox.Se lo sono, vengono aggiunti a un oggetto ArrayList, items.Quando viene chiamato il metodo CreateChildControls sottoposto a override, viene fatto scorrete l'elenco ArrayList e ogni oggetto contenuto viene aggiunto all'insieme ControlCollection del controllo server personalizzato.

System_CAPS_security Sicurezza Nota

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza.Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML.Per ulteriori informazioni, vedere Script Exploits Overview.

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

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: