2014-01-16 181 views
0

我的母版頁中有一個名爲headerLabel的標籤,我想將其文本設置爲內容頁面的標題。我該怎麼做呢?ASP.NET:將數據從內容頁面傳遞到母版頁

+1

您可以使用[此問題](http://stackoverflow.com/questions/1092784/how-to-control-elements-on-a-asp-net- master-page-from-child-page) – Amir

回答

2

在您的主頁創建一個公共財產 - 沿着線的東西:

public string LabelValue 
{ 
    get{ return this.headerLabel.Text;} 
    set{ this.headerLabel.Text = value;} 
} 

然後,你的孩子頁面上,你可以這樣做:

((MyMasterPage)this.Master).LabelValue = "SomeValue"; 
+2

你必須提供一個公共屬性'headerlabel'來返回這個標籤。那麼這種方法比[FindControl'方法]更好(http://stackoverflow.com/a/21160299/284240)。否則,你不能直接訪問它,因爲默認情況下控件是受保護的。 –

+0

不錯的建議 - 我已更新,我總是喜歡訪問屬性 - 我喜歡在主頁上擁有公共屬性而不是公共標籤。 – Liath

+0

我如何着手添加公共財產?我的項目說'MasterPage'不包含'LabelValue'的定義 – Phil

2

您需要通過找到控制它的內容頁上的id然後設置標籤的文本屬性,像這樣

(Label)MasterPage.FindControl("headerLabel").Text="Your Title"; 

最好檢查nu ll之前分配文本屬性這樣

Label mylbl= (Label) MasterPage.FindControl("headerLabel"); 
    if(mylbl!= null) 
    { 
     mylbl.Text = "Your Title"; 
    } 
+0

作爲字符串的硬編碼控制名稱是不好的! – Amir

+0

@Amir我同意一個觀點,但你必須承擔一些事情,否則你永遠不會重定向或寫javascript! – Liath

+0

請關注這篇文章。它描述了在母版頁中將數據發送到母版頁的所有方式,如itle,Meta標籤和其他HTML標題。 https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-getting-started/master-pages/specifying-the-title-meta-tags-and-其他-HTML的標題,在最母版頁-CS –

相關問題