在ASP.NET内容页面中将属性附加到HTML标记

时间:2010-08-24 03:07:56

标签: asp.net

我有一个ASP.NET内容页面。与内容页面关联的HTML标记在母版页中声明。我需要从内容页面向HTML标记添加属性。我的问题是,我不知道如何从内容页面访问此HTML标记。

有人可以告诉我该怎么做吗?

谢谢

3 个答案:

答案 0 :(得分:1)

如果必须

,您可以随时在主页上将其公开为属性
public Label MyLabel
{
    get { return myLabel; }
}

然后,您可以从内容页面轻松访问它:

var master = Master as MyAwesomeMasterPage;

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

This MSDN article会为您提供更多详细信息,包括如何将您的母版页属性设置为强类型。

答案 1 :(得分:1)

我今天早上编写了一个例程,帮助我在母版页层次结构中递归地处理母版页控件(如果你使用的是嵌套母版页)。我将它实现为扩展方法。也许你会发现它很有用:

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);
}

您可以这样申请:

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

答案 2 :(得分:0)

我用丑陋的黑客做过一次,就像所有黑客一样,这是由于没有时间去弄清楚如何正确地做到这一点。

我使用<HTML>控件替换了母版页中的<asp:Literal />标记,然后将该文字控件公开为母版页的属性,我可以从内容页面访问该文件。

这是一种可怕的方式,我相信会有比这更好的答案,但如果你在一个洞里可能会有所帮助。