我有一个ASP.NET内容页面。与内容页面关联的HTML标签在主页面中声明。我需要从内容页面向HTML标签添加一个属性。我的问题是,我不知道如何从内容页面访问这个HTML标签。将属性追加到ASP.NET内容页面中的HTML标记
有人可以告诉我如何做到这一点?
谢谢
我有一个ASP.NET内容页面。与内容页面关联的HTML标签在主页面中声明。我需要从内容页面向HTML标签添加一个属性。我的问题是,我不知道如何从内容页面访问这个HTML标签。将属性追加到ASP.NET内容页面中的HTML标记
有人可以告诉我如何做到这一点?
谢谢
今天早上我写了一个例程,帮助我掌握母版页层次结构(如果您使用嵌套母版页)递归控制母版页控件。我将它作为扩展方法实现。也许你会发现它有用:
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";
我的丑陋的黑客攻击这样做一次,与所有的黑客是由于缺乏时间弄清楚如何正确地做到这一点。
我更换母版页的<HTML>
标签与<asp:Literal />
控制,然后暴露了字面控制,这我可以从内容页访问母版页的属性。
这是一个可怕的方式来做到这一点,我相信会有比这更好的答案,但如果你在一个洞里,它可能会有所帮助。
你总是可以公开为您的母版页的属性,如果你要
public Label MyLabel
{
get { return myLabel; }
}
然后,您可以轻松地从你的内容页面访问:
var master = Master as MyAwesomeMasterPage;
if(master != null)
((MyAwesomeMasterPage)Master).MyLabel.Attributes["bgcolor"] = "lightblue";
This MSDN article会给你更多详细信息,包括如何让您的母版页属性被强制输入。