收 藏
投 稿
繁 体
RSS
首 页
运 营
学 院
建 站
论 坛
Web
master8.net
网站运营
欢迎在本站发布信息,在线投递稿件
请点这里
。编辑QQ:4908220,欢迎联系交流。
业界动态
创业故事
推广研究
策划盈利
电子商务
企业平台
站长工具
SEO查询
Whois查询
Pr查询
域名查询
IP查询
网页编辑器
技术学院
投递稿件请点这里:)
网页设计
HTML
XHTML
CSS
Javascript
Frontpage
Dreamweaver
图形图像
PhotoShop
FireWorks
Flash
Coreldraw
程序开发
PHP
ASP
.NET
JSP
CGI
XML
数据库
MySQL
Oracle
MSSQL
Access
综合应用
设计理论
建站系统
服务器管理
常用下载
办公应用
建站服务
如有建站意向,请尽快联系我们,以便安排时间...
QQ:4908220
作品展示
服务范围
服务流程
服务报价
联系方式
付款方式
站长论坛
注册
/
登陆
/
忘密?
交流区
站长酒吧
SEO&推广
网赚交流
建站系统
服务&信息
招聘求职
项目外包
广告发布
网络资源
技术区
网页设计师
界面设计师
WEB程序员
计算机应用
文章正文
» 您的当前位置:
首页
>>
学院
>>
程序开发
>>
ASP.Net
怎样自定义一个服务器端的控件
来源:
互联网
| 时间:2005-10-04 | 浏览:
相关评论
|
报告错误
|
发布文章
【字号:
大
|
中
|
小
】 【背景色
】
大家知道在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
{
if(extension!="") return extension;
return "txt";
}
set
{
extension=value;
}
}
public string PathToName(string path)
{
int pos=path.LastIndexOf("");
return path.Substring(pos+1);
}
}
}
////////////////////////////////////////////////////////////////////////////////
////
将这个文件编译成dl,l放在要使用位置的bin目录下面就可以在网站中通过
<Wmj:FileUpLoad SavePath="E:" FileLength="3" Extension="txt" runat="server"/>
使用这个组件了
下面举个调用这个控件的例子
<%@page language="C#"%>
<!--注意下面这一句是必须的-->
<%@ Register TagPrefix="Wmj" Namespace="Wmj" Assembly="WmjWebControls"%>
<html>
<head>
</head>
<body>
<form enctype="multipart/form-data" runat="server">
<Wmj:FileUpLoad SavePath="E:" FileLength="3" Extension="txt" runat="server"/>
<!--怎么样使用就是这么简单有点一劳永逸的感觉了吧-->
</form>
</body>
</html>
有了这个例子的启发,大家再也不用担心asp.net的服务器控件太少了吧。
上一篇:
ASP.NET Authentication Provider
下一篇:
万维网创始人博客处女秀
我要投稿
打印本文
推荐本文
加入收藏
返回顶部
关闭窗口
01-12
ASP.NET 中如何防范SQL注入式攻击
12-16
关于Asp代码与页面的分离
11-21
ASP.NET中Server对象的方法
11-21
关于ASP.NET编程中的嵌套If语句
11-21
ASP.NET程序安全的基础知识
ASP.NET 中如何防范SQL注入式攻击
ASP.Net 对XML进行增删改查
ASP.Net实现Ajax多文件无刷新上传
.Net配置文件常用配置说明
ASP.NET热点问题解答14个
.NET下正则表达式应用的四个示例
asp.net 2.0中的URL重写以及url...
揭秘ASP.NET 2.0的Eval方法
.NET 和 Java 之碰撞火花:到底...
网站间共享数据的WebService
more..
» 相 关 评 论
验证码:
站长吧首页
-
网站运营
-
站长学院
-
SEO查询
-
站长论坛
-
建站服务
-
联系本站
-
广告/业务
©2005-2006 站长吧 Master8.NET All rights reserved 陕ICP备05010609号
九州未来科技提供服务器支持
| 网站空间 | 虚拟主机