我解析了Repeater Item控件的客户端ID,并且想在其他命令中使用它,
我如何无法通过他的客户ID获得控制权?
TextBox TB = FindControl ...?
最佳答案
您是否要查找位于转发器内部的文本框?如果是这样,您可以使用下面的方法根据控件的ID进行搜索-您可以对其进行修改以根据控件的clientID进行检查。
public static System.Web.UI.Control FindControlIterative(System.Web.UI.Control root, string id)
{
System.Web.UI.Control ctl = root;
var ctls = new LinkedList<System.Web.UI.Control>();
while (ctl != null)
{
if (ctl.ID == id)
return ctl;
foreach (System.Web.UI.Control child in ctl.Controls)
{
if (child.ID == id)
return child;
if (child.HasControls())
ctls.AddLast(child);
}
if (ctls.First != null)
{
ctl = ctls.First.Value;
ctls.Remove(ctl);
}
else return null;
}
return null;
}