Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
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.
Assembly : System.Web (dans System.Web.dll)
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, itère au sein de la ArrayList et ajoute chacun des objets qui y figurent à la ControlCollection du contrôle serveur personnalisé.
Note de sécurité
|
|---|
|
Cet exemple a une zone de texte qui accepte l'entrée d'utilisateur, ce qui constitue une menace éventuelle 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 ni 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); } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Note de sécurité