我有一个母版页文件,其中包含2个菜单的2个面板控件。我还使用一个控件来检查用户是否已登录,并获取用户的类型。
依赖于我想要显示/隐藏面板的类型。控件本身不在母版页中引用,而是通过CMS系统动态引用。
我想在用户控件中使用findcontrol来查找母版页中的面板控件。我尝试过不同的方法,但都返回了null。
母版页中的内容占位符是asp:Content runat=“ContentPlaceHolderID="PHMainBlock”
控件名为asp:Panel ID="NormalUser“runat="server”
我试过使用代码...
Panel ph = (Panel)Page.Master.FindControl("NormalUser");
ph.Visible = false;但是带回来的是null,有什么帮助吗?
谢谢..
发布于 2012-04-25 20:57:21
您可以在母版页中创建公共属性,即
public bool ShowPanel
{
set
{
NormalUser.Visible = value;
}
}然后这样叫它
if (Page.Master is NameOfMasterPage)
{
((NameOfMasterPage)Page.Master).ShowPanel = false;
}发布于 2012-04-25 21:10:48
由于面板控件位于ContentPlaceHolder控件内,因此必须首先获取对ContentPlaceHolder的引用,然后使用其FindControl方法来定位TextBox控件。
ContentPlaceHolder mpContentPlaceHolder;
Panel pn;
mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("PHMainBlock");
if(mpContentPlaceHolder != null)
{
pn = (Panel) mpContentPlaceHolder.FindControl("NormalUser");
pn.Visible = false;
}http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx
发布于 2012-04-25 20:53:56
一种方法是使用javascript (Jquery)来解决这个问题:
$('.NormalUser').hide();http://api.jquery.com/hide/
https://stackoverflow.com/questions/10315967
复制相似问题