繁体   English   中英

加载内容页面时能否更改母版页中标签的文本?

[英]Can I change the text of a label in a masterpage when loading a content page?

我在母版页(sample.master)中有一个名为lblHeading的标签。

加载内容页面时,我想动态更改标签的文本。

我需要这样做是因为我想将标题更改为有意义的内容,但前提是要知道页面的内容。

这可能吗?

是的,您可以通过这种非常简单的方式........

((Label)Master.FindControl("lblHeading")).Text = "your new text";

是。

您要创建一个强类型的母版页 ,然后可以在Page_Load或其他任何位置从内容页访问它的属性。

对的,这是可能的。 MasterPage行为就像页面中的UserControl一样。

可能的步骤来实现这一点:

  1. 在母版页上创建一个属性或方法,使您可以对Label进行更改。 例如:

     public void ChangeLabel(string label) { lblHeading.Text = label; } 
  2. 在您的Page ,使用Page.Master属性获得对MasterPage的引用。

  3. 调用步骤1中定义的方法以更改MasterPage内容。

附加信息:您可能需要将Page.Master转换为MasterPage类型,请尝试对Wheel的链接进行编码,以获取有关如何执行此操作的说明。

如上所述进行。 然后,例如,从您的页面执行此操作(母版页的标签ID为“ Label_welcome”):

Label mpLabel = (Label)Page.Master.FindControl("Label_welcome");

  if (mpLabel != null)
  {
    mpLabel.Text = "Welcome Fazio!";
  }

您可以在母版页中创建将更改标签的公共属性。

public string Heading
{
    set 
    {
        lblHeading.text = value;
    }

}

它还取决于母版页中控件的深度。 就我而言,我在ContentPlaceHolder控件中有一个Label控件...所以我必须这样做。

Label myLBL = this.Master.FindControl("HeaderContent").FindControl("myLabel") as Label; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM