asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET 2.0 MasterPages and F


发布日期:2020年11月12日
 
ASP.NET 2.0 MasterPages and F

今天遇到这样一个问题 在模板页中放置的一个服务器控件竟然在调用引用该模板页的page中找不到

具体情况如下

在模板页中有一控件:

<asp:HyperLink ID=hylkShowFollowers runat=server Text=列表链接></asp:HyperLink>

有一个page引用了这个模板页在page_load中通过调用MasterFindControl(hylkShowFollowers) 返回为空

查了一些资料之后引起这个问题的原因是由于引用了masterpage之后呢控件的布局发生了改变需要通过递归调用

才能找到该控件

代码如下:

/// <summary>

/// Finds a Control recursively Note finds the first match and exists

/// </summary>

/// <param name=ContainerCtl></param>

/// <param name=IdToFind></param>

/// <returns></returns>

public static Control FindControlRecursive(Control Root string Id)

{

if (RootID == Id)

{

return Root;

}

foreach (Control Ctl in RootControls)

{

Control FoundCtl = FindControlRecursive(Ctl Id);

if (FoundCtl != null)

return FoundCtl;

}

return null;

}

调用方法:

var hylkShowFollowers = FindControlRecursive(Master hylkShowFollowers) as Hyperlink;

if(hylkShowFollowers != null)

{ //加入自己的代码}

上一篇:ASP.NET ViewState初探

下一篇:asp.net身份验证(登录控件),基于标准的sqlserver