清除ASP.NET中的FileUpload内容

时间:2009-05-30 05:06:09

标签: asp.net

如何在ASP.NET中的FileUpload控件中清除文本框内容?

8 个答案:

答案 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字段的innerHTMLdemonstrated 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

相关问题