[英]Not able to find UserControl on a master Page
我在模板页面上放置了一个用户控件,例如Test.aspx
<site:Control1 runat="server" id="Bigbox" AdType="bigbox" AdTile="1" ServeOop="True"/>
并且在Control1后面的代码中,它正在尝试查找放置在母版页上的另一个用户控件。
if (this.Page.Master.FindControl("Control2") != null),
现在,我们设计站点的方式是让模板页面调用母版页,而母版页又调用另一个母版页,我的意思是
在Test.aspx中,它具有
MasterPageFile="~/Views/CMSTemplates/Shows/Show.master"
在Show.master中,它具有
MasterPageFile="~/Views/CMSTemplates/Wrapper.master"
在Wrapper.master中,它具有"~/Views/CMSTemplates/Site.master"
现在,site.master是根级别的母版页,所有模板都对此进行引用。
但是当我将Control2放在site.master上时
<site:Control2 runat="server" id="Control2"/>,
如果(this.Page.Master.FindControl(“ Control2”)返回null。据我了解,因为Site.Master比Test.aspx高几个级别,所以我尝试将Control2放在Show.master Wrapper.master上,Control1仍然找不到控制2。
我什至尝试放入@masterType指令,仍然无法正常工作
有什么想法或建议吗?
请指教。
谢谢
您需要按ID(而不是类名)查找控件:
if (this.Page.Master.FindControl("DfpAdManager") != null)
或使用OfType
:
this.Page.Master.Controls.OfType<Control2>()
您还可以尝试从Page.Master.Parent中检查或搜索控件,具体取决于您将层次结构放在要搜索的控件中以及在何处执行FindControl()。 您可以转到Page.Master.Parent.Parent。 等,如果需要的话。
我在模板页面上使用了<@mastertype参考。 我使用了Page.Master.Master来上链并找到控件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.