大家知道在ASP.NET中微软为我们提供了大量的服务器端控件,包括HtmlControl 和WebControl。它们功能强大,为我们的编程提供了极大的方便。更重要的一点是它开放了对第三方控件的使用。这就使我们可以定制自己需要的服务器端控件。
    下面我就以一个集成化的上传组件来说明怎样自定义一个服务器端的控件,这个组件其实是HtmlInputFile、Button 和Label以及事件实现的集合。这个组件要达到的功能是要象已有的webcontrol一样,用一个设定了几个属性的标记就自动可以实现文件上传了,而不用再实现事件等。
    编写后端代码编译成一个dll 
    //文件名称:WmjWebControls.cs 
    using System.Drawing; 
    using System.Web.UI.HtmlControls; 
    using System.Web.UI.WebControls; 
    using System; 
    namespace Wmj 
    { 
     public class FileUpLoad : Panel 
     { 
     private HtmlInputFile htmlInputFile; 
     private Button button; 
     private Label label; 
     public FileUpLoad() : base() 
     { 
     htmlInputFile=new HtmlInputFile(); 
     button=new Button(); 
     button.Text="上传"; 
     button.Click+=new EventHandler(this.Button_Click); 
     label=new Label(); 
     label.Text="请选择上传文件的路径";