如何在ASP.NET中的FileUpload控件中清除文本框内容?
答案 0 :(得分:17)
ASP.NET FileUpload
控件使用input
映射到HTML type="file"
元素。此元素被视为只读,您无法直接更改它。
然而,似乎至少有三种解决方法可以实现“清理领域”的目标:
一个。使用脚本或提供input type="reset"
按钮重置表单。
湾通过再次设置其属性重新建立DOM中的输入字段:
var fu = document.getElementById("fileUpload");
if (fu != null)
{
fu.setAttribute("type", "input");
fu.setAttribute("type", "file");
}
℃。重新创建现有innerHTML
字段的innerHTML
为demonstrated here:
var fu = document.getElementById("fileUpload");
if (fu != null)
{
// You may be able to use the cached object in `fu`, but I'm not sure.
document.getElementById("fileUpload").innerHTML = fu.innerHTML;
}
答案 1 :(得分:9)
嗨很好的伎俩,但对我来说工作而不是innerhtml
var fu = document.getElementById("flUpload");
if (fu != null) {
document.getElementById("flUpload").outerHTML = fu.outerHTML;
}
的问候, 哈里什
答案 2 :(得分:5)
我刚刚在后面代码中的Button click事件中使用了以下内容......
protected void btnReset_Click(object sender, EventArgs e)
{
flUpload = new FileUpload();
}
按钮单击导致的回发允许页面刷新并创建FileUpload控件的新实例。
答案 3 :(得分:2)
最近我需要相同的东西,并且建议的解决方法都不适用于我(在多个浏览器中)。我做的测试是在IE8和Mozilla 6.0上完成的。在IE中工作的东西在Mozilla中不起作用,反之亦然。
在IE中:
var fu = document.getElementById("<%= fileUploadImage.ClientID %>");
if (fu != null) {
fu.setAttribute("type", "input");
fu.setAttribute("type", "file");
}
在Mozilla:
var fu = document.getElementById("<%= fileUploadImage.ClientID %>");
if (fu != null) {
fu.outerHTML = fu.outerHTML;
}
我尝试了所有可能的变化 - 总是调用 getElementById ,只是第一次调用它,调用它两次...我尝试了 innerHTML ,但是从来没有一个解决方案适用于两种浏览器 这就是为什么我想出了类似的东西:
function clearFileUpload() {
var fu = document.getElementById("<%= fileUploadImage.ClientID %>");
if (fu != null) {
try {
fu.setAttribute("type", "input");
fu.setAttribute("type", "file");
}
catch (ex) {
fu.outerHTML = fu.outerHTML;
}
}
}
答案 4 :(得分:2)
一种适用于Internet Explorer和Firefox的简单方法 - 代码中的c#:
File1Upload.ID = null;
答案 5 :(得分:1)
Sub ClearAll()
txtExample.Text=""
txtInfo.Text=""
fuPics.Dispose
fuDocs.Dispose
End Sub
当从btnClear
之类的按钮调用子时,此子工作用于清除文件上载控制文本字段的内容。上面的代码适用于asp.net可视化网页。
答案 6 :(得分:0)
您可以清除FileUpload控件,并将响应重定向回页面本身,并且可以将文件存储在会话变量中,以便在下一次往返中使用。
protected void PageLoad(EventArgs e){
if(FileUpLoadControlId.HasFile)
{
Session["data"]=FileUpLoadControlId.PostedFile.InputStream;
Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri, true);
}
else if( Session["data"]!=null)
{
//massage data here
//and post back
Session["data"]=null;
Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri, true);
}
}
响应重定向重新初始化视图状态
答案 7 :(得分:-1)
如何
If(File1Upload.HasFile)然后 File1Upload = Nothing