ASP.NET:从内容页传递数据到主页面

3

我在我的母版页中有一个名为headerLabel的标签,我想把它的文本设置为内容页中的标题。我该怎么做?


1
你可以使用这个问题中的链接:https://dev59.com/m3NA5IYBdhLWcg3wGJwV - Amir
2个回答

5
在您的主页面上创建一个公共属性 - 大致如下:
public string LabelValue
{
  get{ return this.headerLabel.Text;}
  set{ this.headerLabel.Text = value;}
}

然后,在您的子页面上,您可以这样做:
((MyMasterPage)this.Master).LabelValue = "SomeValue";

2
дҪ йңҖиҰҒжҸҗдҫӣдёҖдёӘе…¬е…ұеұһжҖ§headerlabelпјҢиҜҘеұһжҖ§иҝ”еӣһиҝҷдёӘж ҮзӯҫгҖӮиҝҷз§Қж–№жі•жҜ”FindControlж–№жі•жӣҙеҘҪгҖӮеҗҰеҲҷпјҢз”ұдәҺжҺ§д»¶й»ҳи®ӨдёәprotectedпјҢдҪ ж— жі•зӣҙжҺҘи®ҝй—®е®ғгҖӮ - Tim Schmelter
不错的建议 - 我已经更新了,我总是更喜欢访问属性 - 我喜欢在主页面上拥有一个公共属性的想法,而不是公共标签。 - Liath
如何添加公共属性?我的项目显示'MasterPage'不包含对'LabelValue'的定义。 - Phil
@PhilipLoffler 将第一个代码段添加到您的主页中 - Liath
我已经做了这个,但是我仍然遇到相同的问题。 - Phil
显示剩余3条评论

2
你需要通过内容页的id查找控件,然后像这样设置标签的文本属性。
(Label)MasterPage.FindControl("headerLabel").Text="Your Title";

在分配文本属性之前最好先检查null,就像这样:

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

硬编码控制名称作为字符串是不好的! - Amir
@Amir 我同意部分观点,但你必须假设某些事情已经设置好,否则你将无法重定向或编写 JavaScript! - Liath
1
请按照这篇文章的指引,了解如何向主页面发送数据,包括标题、元标签和其他HTML头部信息。https://learn.microsoft.com/zh-cn/aspnet/web-forms/overview/older-versions-getting-started/master-pages/specifying-the-title-meta-tags-and-other-html-headers-in-the-master-page-cs - Kabir Hossain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接