这一定是一个普遍的问题。
- 用户控件 A 有一个 TextBox T。
- 用户控件 B 继承自用户控件 A。
- 用户控件 B 放置在页面 P 上。
在页面 P 的 Page_Load 事件期间,如果您尝试访问 TextBox T,您会发现它为空。
有没有一个优雅的解决方案?
这一定是一个普遍的问题。
在页面 P 的 Page_Load 事件期间,如果您尝试访问 TextBox T,您会发现它为空。
有没有一个优雅的解决方案?
从 UserControls 继承 UserControls 不是一个好策略。不会呈现父 UserControl 中的元素 - 这就是您的 TextBox 为空的原因。
更好的选择是将 UserControl A 包含在 UserControl B 中 - 这样 UserControl A 的元素可以在您的其他 UserControls 中重复使用。
看看关于继承 UserControls 的另一篇文章 -如何(如果有的话)使 ASP.NET UserControl 从另一个 UserControl 继承?.
控件 B 的 ASCX 是否包含文本框 T?它需要为了使文本框 T 不为空。如果 controlB 不包含文本框 T,则在后面的代码中声明的属性不会绑定到任何前端控件,因此保持为空。