asp.net怎样自定义一个服务器端的控件

时间:2010-03-08 12:26:30  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:一个集成化的上传组件来说明怎样自定义一个服务器端的控件,这个组件其实是HtmlInputFile、Button 和Label以及事件实现的集合。这个组件要达到的功能是要象已有的webcontrol一样,用一个设定了几个属性的标记就自动可以实现文件上传了,而不用再实现事件等。   编写后端代码编译成一个dll   //文件名称:WmjWebControls.cs   using Sys...
  正文:大家知道在ASP/ target=_blank class=infotextkey>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="<font size=2>请选择上传文件的路径</font>";
   this.Controls.Add(htmlInputFile);
   this.Controls.Add(button);
   this.Controls.Add(label);
   this.Width=450;
   this.Height=30;
   this.BorderStyle=BorderStyle.Dotted;
   this.BorderWidth=1;
   }
   private void Button_Click(object sender, EventArgs e)
   {
   System.Web.HttpPostedFile postedFile=htmlInputFile.PostedFile;
   if(postedFile!=null)
   {
   try{
   string fileName=PathToName(postedFile.FileName);
   if(!fileName.EndsWith(Extension))
   {label.Text="You must select "+Extension+" file!"; return;}
   if(postedFile.ContentLength>int.Parse(FileLength))
   {label.Text="File too big!";return;}
   postedFile.SaveAs(SavePath+fileName);
   label.Text="Upload File Successfully!";
   return;
   }catch(System.Exception exc){label.Text=exc.Message;return;}
   }
   label.Text="Please select a file to upload!";
   return;
   }
   private string savePath="";
   private string extension="";
   private string fileLength="0";
  //上传的文件保存在服务器上的位置默认为c: 这些属性一般都是在asp.net的标记中设置也可以在codebehind中设置
   public string SavePath
   {
   get
   {
   if(savePath!="") return savePath;
   return "c:";
   }
   set
   {
   savePath=value;
   }
   }
  //上传文件的最大长度 单位k 默认为1k
   public string FileLength
   {
   get
   {
   if(fileLength!="0") return fileLength;
   return "1024";
   }
   set
   {
   fileLength=(int.Parse(value)*1024).ToString();
   }
   }
  //上传文件的扩展名 默认为txt
   public string Extension
   {
   get
   {
"asp.net怎样自定义一个服务器端的控件"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13139.html


关键字:

关于《asp.net怎样自定义一个服务器端的控件》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td