Comment faire des classes partielles de contrôle de l'utilisateur au courant des contrôles déclarés dans la classe de base?
-
24-09-2019 - |
Question
Est-ce que nous devons faire quelque chose de spécial pour avoir ASP.NET classes partielles au courant des contrôles qui sont déclarés dans nos classes de base de contrôle de l'utilisateur? Les classes partielles maintiennent des déclarations générant des contrôles dans la classe de base qui signifie les contrôles dans la classe de base et seront cachés sont nuls.
La solution
L'attribut CodeFileBaseClass peut être appliqué à @Page ou < a href = « http://msdn.microsoft.com/en-us/library/d19c0t4b.aspx » rel = « nofollow noreferrer »> @ déclarations de contrôle pour rendre l'exécution ASP.NET connaissance de contrôles déclarés dans votre classe de base.
MSDN décrit comme suit:
Indique le nom du type d'une classe de base pour une page et son associé classe code-behind.
Cet attribut est en option, mais quand il est utilisé la attribut CodeFile doit également être présent. Utilisez cet attribut lorsque vous veulent mettre en œuvre un scénario partagé, où vous définissez des champs communs (et éventuellement, des événements associés) dans un classe de base pour référencer les contrôles a déclaré dans une page Web. En raison de l modèle ASP.NET génération de code, si vous les champs définis dans une classe de base sans utiliser cet attribut, à la compilation de nouvelles définitions de membre serait généré pour les contrôles a déclaré dans la page Web (dans un séparée talon de classe partielle), et votre scénario souhaité ne fonctionnerait pas. Mais si vous utilisez le CodeFileBaseClass attribuer à associer la classe de base avec la page, et vous faites votre classe partielle (son nom est attribué à l'attribut Inherits et sa source fichier est référencé par le CodeFile attribuer) héritent de la base classe, les champs dans la base classe sera en mesure de faire référence à la contrôle sur la page après le code génération .