有关母版页的问题

时间:2011-03-30 16:24:25

标签: asp.net master-pages

我有一个简单的母版页(mas​​ter.aspx),它有3个链接按钮,即HomeLBTn,它将用户重定向到home.aspx,LoginLBtn-到login.aspx,RegisterLBtn-到Register.aspx

我项目中的每个页面都继承了母版页。 home.aspx也继承了master.aspx,但我不希望home.aspx继承HomeLBtn,我希望它继承剩下的2个LBtn,而不是HomeLBtn。我怎样才能将这个条件纳入Home.aspx

请帮帮我

感谢您的期待

3 个答案:

答案 0 :(得分:4)

一种方法是在MasterPage中找到控件并将其可见性设置为false:

Page.Master.FindControl("HomeLBtn").Visible = False

这将在页面上的Page_Load(或其他一些生命周期事件)中完成,该页面不应显示Home按钮。

答案 1 :(得分:0)

您可以在母版页中执行类似的操作(查看子页面是什么)

 //If the child page is viewing an order then disable the new request button       
 if (this.ContentPlaceHolder1.Page is OrderView)       
 { 
      base.RemoveMenuItem("New Request", mnuSettings);        
 }

注意:base.RemoveMenuItem是我的基页的方法

http://wraithnath.blogspot.com/2010/09/how-to-hide-show-controls-on-master.html

另一种选择是向子页面和母版页添加属性,并使用会话数据隐藏和显示按钮。

例如。在儿童页面:

protected MyCustomMasterPage CustomMasterPage
{
  get
  {
     return this.Master as MyCustomMasterPage;
  }
}

在您的母版页中,您可以设置一个会话变量,您可以将其设置为隐藏并显示按钮

public bool HomeVisible
{
   get
   {
      return (bool) Session["HomeVisible"]; 
   }
   set
   {
      Session["HomeVisible"] = value;
   }
}

然后,您可以在加载母版页时检查HomeVisible属性以显示/隐藏按钮。然后,您可以从子页面设置它。

this.MyCustomMasterPage.HomeVisible = false;

也许不是最好的方式,但他们的工作

答案 2 :(得分:0)

在master.aspx中,定义“注册”和“登录”链接按钮,以及“主页”按钮所在位置的内容占位符。然后让Home.aspx继承master.aspx。然后创建一个继承自master.aspx的第二个母版页(mas​​ter2.aspx)。在master2中,在内容占位符中添加Home链接按钮,并让其他页面继承自master2。