日期:2014-05-17  浏览次数:20606 次

一般在什么时候需要对服务器控件进行扩展后再使用
看到一段这样的代码:
namespace Jiaen.Controls
{
   public class ServiceLabel:Label
    {

       public override string Text
       {
           get
           {
               return SiteSetting.GetSiteSettings("jiaen").SiteBottomDec;
           }
           set
           {
               base.Text = value;
           }
       }
    }
}


以上的代码对asp.net自带的服务器控件Label控件进行了扩展,重写了Text属性,我想知道在什么情况下要这么做?在开发过程中有时会因为性能问题不用服务器控件,以上的代码对服务器控件进行了扩展,并没有在性能上提高吧?还是有多余的viewstate产生吧?

那么在开发的时候如果要编写自定义控件一般来讲会怎么做?会直接继承继承WebControl类吗?能否给个例子参考下?

------解决方案--------------------
1、在有控件的功能无法很好的满足你的开发需求,但是如果自定义一个控件能够减少你的工作量,同时后期维护方便,在一定程度能复用的情况下可以开发这么一个服务器控件。
2、性能没提高。
3、ViewState你可以禁止

------解决方案--------------------
引用:
Quote: 引用:

如果你希望重用和扩展的时候,你使用继承是再好不过的。因为你把复杂性隐藏到控件的内部,而对调用者来说保持了简单。

我在问题描述中给出的代码是我偶然间在网上看到的,我想问的是在有必要编写自定义控件时一般来讲哪种做法更常见,是继承自带的服务器控件并进行扩展同时从性能的角度出发禁用viewstate,还是说只继承最基本的基类,自己重写大部分功能,判断的基准是什么?


如果你要用100个控件,每个都需要相同的配置或者扩展下,你觉得继承一个方便还是直接写代码去操作它方便。