我正在尝试添加扩展方法,以便在Web表单ASP.Net页面上轻松获取各种不同控件类型的列表。我创建了一个新的静态类并插入了扩展方法:
public static class PageExtension
{
public static IEnumerable<T> FindControls<T>(this Page page, bool recurse) where T : Control
{
List<T> found = new List<T>();
Action<Control> search = null;
search = ctrl =>
{
foreach (Control child in ctrl.Controls)
{
if (typeof(T).IsAssignableFrom(child.GetType()))
{
found.Add((T)child);
}
if (recurse)
{
search(child);
}
}
};
search(control);
return found;
}
}
现在我想从我的页面调用该方法,所以我添加了这个:
protected void ResetControls()
{
var listTextBox = this.Page.FindControls<TextBox>(true);
}
但是我得到了编译错误:
&#39; System.Web.UI.Page&#39;不包含&#39; FindControls&#39;的定义没有扩展方法&#39; FindControls&#39;接受类型&#39; System.Web.UI.Page&#39;的第一个参数。可以找到
如果有任何不同,我正在使用母版页,但我在这里缺少什么?
谢谢!