更改母版页上链接按钮上的文字?

时间:2011-04-27 14:23:00

标签: c# asp.net master-pages

当用户点击内容页面上的按钮并且生成的操作符合特定条件时,我希望更改母版页上链接按钮上的文本。 这可以吗?我似乎无法通过intellisense访问母版页控件,我认为这是有道理的,但它有办法吗?

再次感谢

4 个答案:

答案 0 :(得分:3)

您必须使用FindControl方法在母版页中找到控件,例如......

(ControlType)Master.FindControl("controlID")


((LinkButton)Master.FindControl("LinkButtonID")).Text = "New Text";

答案 1 :(得分:1)

在您的母版页后面的代码中添加一个属性,如下所示:

public LinkButton LButton
{
    get { return lButton; }
    set { lButton = value; }
}

在.aspx页面的顶部,添加此指令以及指向母版页的虚拟路径:

<%@ MasterType VirtualPath="~/Master.master" %>

重建解决方案,在.aspx后面的代码中,您可以这样做:

Master.LButton.Text = "foo bar";

编辑:如果您希望文本在其他页面上保留: 满足特定条件时,您可以改为设置会话变量:

Session.Add("Link Button Text", "foobar");

在MasterPage的Page_Load中:

if(Session["Link Button Text"] != null)
{
   lButton.Text = Session["Link Button Text"].ToString(); 
} 

答案 2 :(得分:0)

使用Master关键字。因此,Master.control将访问母版页上的控件。

答案 3 :(得分:0)

为了提供给出的解决方案的另一种替代方案,您还可以考虑为主设备提供接口:

public interface IMaster
{
   string LinkButtonText { get; set; }
}

将此接口应用于主服务器的代码隐藏。然后在页面中执行:

((IMaster)Page.Master).LinkButtonText = "XYZ";

此外,如果您有自定义基页类,则可以隐藏Master属性并返回此接口,以便您可以直接引用它。

HTH。