我有一個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會給你更多詳細信息,包括如何讓您的母版頁屬性被強制輸入。