从用户控件继承的ASP.NET用户控件生成空引用

时间:2010-11-25 01:25:48

标签: asp.net inheritance webusercontrol

这一定是个常见问题。

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

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

对此有优雅的解决方案吗?

2 个答案:

答案 0 :(得分:7)

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

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

看看这篇关于继承UserControls的帖子 - How (if at all) can you make an ASP.NET UserControl inherit from another UserControl?

答案 1 :(得分:1)

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