<b>ASP.NET 2.0 MasterPages and FindControl()</b>[网站编程]
本文“<b>ASP.NET 2.0 MasterPages and FindControl()</b>[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本日碰到这样一个问题, 在模板页中安排的一个服务器控件,竟然在调用引用该模板页的page中找不到.
具体情形以下
在模板页中有一控件:
<asp:HyperLink ID="hylkShowFollowers" runat="server" Text="列表链接"></asp:HyperLink>
有一个page,引用了这个模板页,在page_load中通过调用Master.FindControl("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 (Root.ID == Id)
{
return Root;
}
foreach (Control Ctl in Root.Controls)
{
Control FoundCtl = FindControlRecursive(Ctl, Id);
if (FoundCtl != null)
return FoundCtl;
}
return null;
}
调用办法:
var hylkShowFollowers = FindControlRecursive(Master, "hylkShowFollowers") as Hyperlink;
if(hylkShowFollowers != null)
{ //加入自己的代码}
以上是“<b>ASP.NET 2.0 MasterPages and FindControl()</b>[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |