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;" >
< 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;" >
这样一次改变,便能修改文本框和按钮的样式和文本,实现变脸。
效果图: