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