2010-08-24 5 views
2

J'ai une page de contenu ASP.NET. La balise HTML associée à la page de contenu est déclarée dans la page maître. Je dois ajouter un attribut à la balise HTML de la page de contenu. Mon problème est, je ne sais pas comment accéder à cette balise HTML à partir de la page de contenu.Ajout d'un attribut à une balise HTML dans une page de contenu ASP.NET

Quelqu'un peut-il me dire comment faire?

Merci

Répondre

1

J'ai écrit une routine ce matin qui m'aide à maîtriser les commandes de la page maître de manière récursive dans la hiérarchie des pages maîtres (si vous utilisez des pages maîtres imbriquées). Je l'ai implémenté comme une méthode d'extension. Peut-être que vous trouverez utile:

public static TResult FindControlInMasterPages<TResult>(this MasterPage masterPage, string id) 
    where TResult : Control 
{ 
    return masterPage == null ? null : 
      masterPage.FindControl(id) as TResult ?? FindControlInMasterPages<TResult>(masterPage.Master, id); 
} 

Vous pouvez appliquer cette façon:

this.Master.FindControlInMasterPages<Label>("myLabel").Attributes["attr"] = "value"; 
0

Je l'ai fait une fois avec une bidouille horrible, comme avec tous les hacks qu'elle était due à un manque de temps pour comprendre comment le faire correctement.

J'ai remplacé la balise <HTML> dans la page maître par un contrôle <asp:Literal />, puis j'ai exposé ce contrôle littéral en tant que propriété du gabarit auquel je pouvais accéder à partir de la page de contenu.

C'est une façon horrible de le faire, je suis sûr qu'il y aura de bien meilleures réponses que cela, mais si vous êtes dans un trou, cela pourrait aider.

1

Vous pouvez toujours l'exposer comme une propriété sur votre page maître si vous devez

public Label MyLabel 
{ 
    get { return myLabel; } 
} 

Vous pouvez accéder facilement à partir de votre page de contenu:

var master = Master as MyAwesomeMasterPage; 

if(master != null) 
    ((MyAwesomeMasterPage)Master).MyLabel.Attributes["bgcolor"] = "lightblue"; 

This MSDN article vous donnera plus détail, y compris comment obtenir votre propriété de page maître à être fortement typé.

Questions connexes