Page.FindControl在Page以外的任意类中返回null

本文关键字:Page 返回 null 任意类 FindControl | 更新日期: 2023-09-27 17:59:15

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

这里txtEndUser总是为空。

我们如何解决这个问题?

Page.FindControl在Page以外的任意类中返回null

作为一种变通方法,如果你找不到使用FindControl的方法,你可以将公共getter添加到你的自定义页面类中,如下所示:

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

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

在我看来,这个代码片段在HttpModule中,所以很可能,请求还没有分发给处理程序(例如,您在BeginRequest中(。

参考:为什么HttpContext.CurrentHandler为null?