2010-04-14 12 views
2

Dites que j'ai un site Web avec une page maître et une page aspx.Puis-je faire des contrôles définis dans mon balisage public au lieu de protégé

Dans ma page ASPX, je pointe vers ma page maître avec la balise MasterType.

<%@ MasterType VirtualPath="~/mymasterpage.master" %> 

Dites, j'ai défini une étiquette dans le balisage de ma page maître.

Si vous regardez le code du concepteur, cette étiquette devrait ressembler à ceci.

protected global::System.Web.UI.WebControls.Label label1; 

maintenant dans ma page de contenu, je voudrais faire référence à cette étiquette. Si je tape dans ce "Master.label1", le complicateur se plaindra que le contrôle est inaccessible en raison du niveau de protection "et à juste titre, comme label1 est automatiquement défini comme" protégé "

Ma question est, si Je définis les contrôles dans ma page de balisage, est-il possible de définir ces contrôles publics au lieu de protéger? Je ne vois pas un attribut pour elle.

merci à l'avance.

Répondre

2

Vous pouvez les faire manuellement du public en changeant le code du designer bien sûr, mais en général c'est un design incorrect, ils sont protégés pour une raison quelconque, en ce sens que toute classe qui est "au courant" de votre page, contrôle ou master class a nd interagit avec elle devrait interagir avec des propriétés et des événements spécialisés que la classe expose, pas les contrôles eux-mêmes.