2010-08-24 94 views
2

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

有人可以告诉我如何做到这一点?

谢谢

回答

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"; 
0

我的丑陋的黑客攻击这样做一次,与所有的黑客是由于缺乏时间弄清楚如何正确地做到这一点。

我更换母版页的<HTML>标签与<asp:Literal />控制,然后暴露了字面控制,这我可以从内容页访问母版页的属性。

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

1

你总是可以公开为您的母版页的属性,如果你要

public Label MyLabel 
{ 
    get { return myLabel; } 
} 

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

var master = Master as MyAwesomeMasterPage; 

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

This MSDN article会给你更多详细信息,包括如何让您的母版页属性被强制输入。