gpt4 book ai didi

c# - 在嵌套母版页中查找控件

转载 作者:太空狗 更新时间:2023-10-29 18:01:37 25 4
gpt4 key购买 nike

我有一个母版页,嵌套了 2 层。它有一个母版页,那个母版页有一个母版页。

当我将控件粘贴到名为“bcr”的 ContentPlaceHolder 中时 - 我必须像这样找到控件:

 Label lblName =(Label)Master.Master.FindControl("bcr").FindControl("bcr").FindControl("Conditional1").FindControl("ctl03").FindControl("lblName");

我完全迷路了吗?还是需要这样做?

我即将使用位于条件内容控件内的 MultiView。因此,如果我想更改 View ,我必须获得对该控件的引用,对吗?获得该引用将变得更加糟糕!有没有更好的办法?

谢谢

最佳答案

寻找控件很痛苦,我一直在使用从 CodingHorror blog 获得的这种方法很久以前,如果传入空 id,则进行一次修改,返回 null。

/// <summary>
/// Recursive FindControl method, to search a control and all child
/// controls for a control with the specified ID.
/// </summary>
/// <returns>Control if found or null</returns>
public static Control FindControlRecursive(Control root, string id)
{
if (id == string.Empty)
return null;

if (root.ID == id)
return root;

foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}

在您的情况下,我认为您需要以下内容:

Label lblName = (Label) FindControlRecursive(Page, "lblName");

使用此方法通常要方便得多,因为您无需确切知道控件所在的位置即可找到它(当然,假设您知道 ID),但如果您有同名的嵌套控件,您可能会遇到一些奇怪的行为,所以这可能是需要注意的事情。

关于c# - 在嵌套母版页中查找控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com