繁体   English   中英

在母版页上找不到UserControl

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM