文件上传控件的变脸

来源:互联网 发布:mac进不去windows系统 编辑:程序博客网 时间:2024/04/27 18:27
原文地址: http://www.cnblogs.com/heekui/archive/2007/02/27/658208.html

WEB开发有些时候我们会遇到弹出文件对话框,选择一个本地文件的需求。
在ASP.NET 2.0下,我们可以直接采用FileUpload控件来做到这一点。
这是一个组合控件,由一个文本框和一个按钮组成,实质就是html下的input(file)控件。

使用方法:
前台
<asp:FileUpload ID="FileUpload1" runat="server" />

后台
//获取选择文件完整路径
string fileName = this.FileUpload1.PostedFile.FileName;

使用起来没有问题,但是我们会遇到这样一个问题:控件样式不好设置,浏览按钮的文本也不能改变。
那么如何可以做到变脸呢?我们只能变通一下,一点小技巧:
1 放一个input(file)控件,设置风格为隐藏,属性改变事件中指定选中值赋值到输出的文本框控件上
2 放一个input(text)控件,设置为只读
3 放一个button控件,设置点击事件为input(file)控件的点击事件
 

<input type="file" id="btnFile" onpropertychange="txtFoo.value=this.value;" style="visibility:hidden"><br>

        
<input type="text" id="txtFoo" readonly style="width: 353px;background-color:#D6FFD6"> 

        
<input type="button" onclick="btnFile.click()" value="选择文件" style="background-color:#E3ECE7;border:1 solid black;">


这样一次改变,便能修改文本框和按钮的样式和文本,实现变脸。

效果图: