2009-12-21 8 views
0

Je lis à propos des contrôles basés sur des modèles/INamingContainer, mais je ne comprends pas quel problème il résout lors de la création d'un contrôle personnalisé. Est-ce que cela me permet simplement d'utiliser ItemTemplate (comme le fait DataGrid)?Question sur les contrôles basés sur un modèle personnalisé

lien de référence: http://msdn.microsoft.com/en-us/library/36574bf6.aspx

Le lien this, il dit: « Tout contrôle qui implémente cette interface crée un nouvel espace de noms dans lequel tous les attributs d'identité de contrôle des enfants sont garantis être unique dans une application entière. », Donc vraiment , cette interface est pour les contrôles composites et non les contrôles personnalisés qui ne sont pas composites?

Merci

Répondre

0

Le problème qu'il résout est que tous les contrôle du serveur ID de doivent être uniques. Considérons un contrôle composite simple qui ajoute une zone de texte à lui-même appelée "Textbox1". Si vous ajoutez deux de ces contrôles composites à la page, il y aura deux contrôles appelés "Textbox1" sur la page, ce qui viole l'unicité, et donc la capacité d'ASP.Net à gérer et maintenir ces zones de texte du côté serveur . En y ajoutant l'espace de noms de conteneur, vous obtenez un nom unique. Dans ce cas, vous obtiendrez quelque chose comme "myCompositeControl_Textbox1" et "myCompositeControl2_Textbox1".

Questions connexes