1.关闭容器

Control类有Controls集合属性,即继承Control类的控件都是一个容器控件,asp.net控件内置的有PlaceHolder控件,其只继承自Control类,什么也没做。但所有控件都是继承自Control类的。如一个label控件,照样可以当容器使用.

asp.net控件开发技巧(2)关闭基类不必要的功能label1.Controls.add(control)

有些控件则不需要这个功能,如Literal控件,只输出纯文字,不允许添加子控件

asp.net控件开发技巧(2)关闭基类不必要的功能

很简单,重写CreateControlCollection方法,返回EmptyControlCollection空集合

asp.net控件开发技巧(2)关闭基类不必要的功能   protected override ControlCollection CreateControlCollection()

2.禁用属性

如SqlDataSourceControl控件,其继承自DataSourceControl,DataSourceControl类则继承自Control类,DataSourceControl 不需要呈现东西,自然不需要样式,所以像SkinIDEnableTheming等属性则不需要使用。同时也可以用new关键字和一些元数据禁用掉像WebControl类的一些公共属性。有时候你确实不需要这些东西,或者是将这些属性给子标签用也可以。

        }

总结:有时候继承下来的并不是你所需要的,所以灵活的重写基类的方法和属性是非常有必要的,而且有时候还必须这么做

相关文章:

  • 2021-08-01
  • 2022-01-09
  • 2021-10-08
  • 2022-12-23
  • 2021-09-16
  • 2021-12-21
猜你喜欢
  • 2021-07-19
  • 2021-10-06
相关资源
相似解决方案