Page.FindControl在除Page之外的某个任意类中返回null

时间:2011-06-15 07:51:09

标签: c# .net asp.net

page = (Page)HttpContext.Current.CurrentHandler;
TextBox txtEndUser = ((TextBox)page.FindControl("txtEndUser"));

此处txtEndUser始终为空。

我们如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

如果页面没有直接包含TextBox控件,那么您将无法使用FindControl函数检索它。您需要创建一个函数来搜索目标控件的包含容器。

答案 1 :(得分:0)

在我看来,此代码段位于HttpModule中,因此可能尚未将请求分发给处理程序(例如,您在BeginRequest中)。

参考:Why HttpContext.Current.Handler is null?

答案 2 :(得分:0)

如果您没有找到使用FindControl的方法,那么您可以将公共getter添加到自定义页面类中,具体如下:

WebForm1 myForm = (WebForm1)HttpContext.Current.CurrentHandler;
TextBox txtEndUser = myForm.GetEndUserTextbox();