gpt4 book ai didi

C# 相当于 jQuery.parents(Type)

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

在 jQuery 中,有一个名为 .parents('xx') 的很酷的函数,它使我能够从 DOM 树中某处的对象开始,并在 DOM 中向上搜索以找到特定类型的父对象。

现在我在 C# 代码中寻找同样的东西。我有一个 asp.net 面板,它有时位于另一个父面板中,有时甚至是 2 或 3 个父面板,我需要向上移动通过这些父面板才能最终找到 UserControl 我正在寻找。

在 C#/asp.net 中是否有一种简单的方法可以做到这一点?

最佳答案

编辑:重读你的问题后,我根据帖子中的第二个链接尝试了一下:

public static T FindControl<T>(System.Web.UI.Control Control) where T : class
{
T found = default(T);

if (Control != null && Control.Parent != null)
{
if(Control.Parent is T)
found = Control.Parent;
else
found = FindControl<T>(Control.Parent);
}

return found;
}

请注意,未经测试,只是现在编造的。

以下供引用。

有一个名为 FindControlRecursive 的常用函数,您可以在其中从页面向下遍历控件树以查找具有特定 ID 的控件。

这是来自 http://dotnetslackers.com/Community/forums/find-control-recursive/p/2708/29464.aspx 的一个实现

private Control FindControlRecursive(Control root, string id) 
{
if (root.ID == id)
{
return root;
}

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

return null;
}

你可以这样使用:

var control = FindControlRecursive(MyPanel.Page,"controlId");

你也可以把它和这个结合起来:http://weblogs.asp.net/eporter/archive/2007/02/24/asp-net-findcontrol-recursive-with-generics.aspx创建一个更好的版本。

关于C# 相当于 jQuery.parents(Type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166490/

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