我正在尝试使用递归函数在ASP.NET页面中找到TextBox控件.找到此控件后,我想终止该函数并将其返回.
我的主要问题是我无法停止递归函数并返回控件.
这是我的代码:
//execute recursive function to find a control in page by its id
TextBox textbox = GetTextBoxByID(controlCollection, id);
//recursive function
private TextBox GetTextBoxByID(ControlCollection controlCollection, string id)
{
foreach (Control control in controlCollection)
{
if (control is TextBox)
{
TextBox tb = (TextBox)control;
if (tb.ID == id)
{
//return selected texbox and terminate this recursion
return tb;
}
}
if (control.HasControls())
{
GetTextBoxByID(control.Controls, id);
}
}
//no control found return null
return null;
}
Run Code Online (Sandbox Code Playgroud)
你错过了另外一张支票,就在这里:
if (control.HasControls())
{
var result = GetTextBoxByID(control.Controls, id);
if (result != null)
return result;
}
Run Code Online (Sandbox Code Playgroud)