3

这一定是一个普遍的问题。

  • 用户控件 A 有一个 TextBox T。
  • 用户控件 B 继承自用户控件 A。
  • 用户控件 B 放置在页面 P 上。

在页面 P 的 Page_Load 事件期间,如果您尝试访问 TextBox T,您会发现它为空。

有没有一个优雅的解决方案?

4

2 回答 2

7

从 UserControls 继承 UserControls 不是一个好策略。不会呈现父 UserControl 中的元素 - 这就是您的 TextBox 为空的原因。

更好的选择是将 UserControl A 包含在 UserControl B 中 - 这样 UserControl A 的元素可以在您的其他 UserControls 中重复使用。

看看关于继承 UserControls 的另一篇文章 -如何(如果有的话)使 ASP.NET UserControl 从另一个 UserControl 继承?.

于 2010-11-25T01:47:18.727 回答
1

控件 B 的 ASCX 是否包含文本框 T?它需要为了使文本框 T 不为空。如果 controlB 不包含文本框 T,则在后面的代码中声明的属性不会绑定到任何前端控件,因此保持为空。

于 2010-12-05T17:30:10.387 回答