我有一个简单的母版页(master.aspx),它有3个链接按钮,即HomeLBTn,它将用户重定向到home.aspx,LoginLBtn-到login.aspx,RegisterLBtn-到Register.aspx
我项目中的每个页面都继承了母版页。 home.aspx也继承了master.aspx,但我不希望home.aspx继承HomeLBtn,我希望它继承剩下的2个LBtn,而不是HomeLBtn。我怎样才能将这个条件纳入Home.aspx
请帮帮我
感谢您的期待
答案 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的第二个母版页(master2.aspx)。在master2中,在内容占位符中添加Home链接按钮,并让其他页面继承自master2。