Подтвердить что ты не робот

Очистить содержимое FileUpload в ASP.NET

Как очистить содержимое текстового поля в элементе управления FileUpload в ASP.NET?

4b9b3361

Ответ 1

Элемент управления ASP.NET FileUpload сопоставляется с элементом HTML input с type="file". Этот элемент считается только для чтения, и вы не можете его изменить напрямую.

Однако для достижения цели "очистки поля", по-видимому, существует, по крайней мере, три обходных пути:

а. Reset, либо используя script, либо используя кнопку input type="reset".

б. Восстановите поле ввода в DOM, снова установив его атрибуты:

var fu = document.getElementById("fileUpload");
if (fu != null)
{
  fu.setAttribute("type", "input");
  fu.setAttribute("type", "file");
}

с. Восстановите innerHTML поля из существующего innerHTML как показанного здесь:

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;
}

Ответ 2

Привет, хороший трюк, но для меня после работы вместо innerhtml

            var fu = document.getElementById("flUpload");
            if (fu != null) {
                document.getElementById("flUpload").outerHTML = fu.outerHTML;
            }

С уважением, Хариш

Ответ 3

Я только что использовал следующее в событии click Button в коде позади...

protected void btnReset_Click(object sender, EventArgs e)
{
    flUpload = new FileUpload();
}

Откат, вызванный нажатием кнопки, позволяет обновлять страницу и создает новый экземпляр элемента управления FileUpload.

Ответ 4

Они работали на FF, Chrome, IE7/8/9

//Method 1

var fu = $('#docUpload')[0];  
fu.value="";

var fu2= fu.cloneNode(false);
fu2.onchange= fu.onchange;
fu.parentNode.replaceChild(fu2,fu);

ИЛИ:   // Способ 2:

document.getElementById('docUpload').outerHTML =     
    document.getElementById('docUpload').outerHTML;

Ответ 5

В последнее время мне было нужно то же самое, и ни один из предложенных обходных решений не работал у меня (в нескольких браузерах). Те тесты, которые я сделал, были сделаны на 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;
        }
    }
}

Ответ 6

Простой подход, который работает для Internet Explorer и Firefox - в коде С# за кодом:

File1Upload.ID = null;

Ответ 7

Sub ClearAll()

    txtExample.Text=""
    txtInfo.Text=""

    fuPics.Dispose
    fuDocs.Dispose

End Sub

Этот раздел работает, чтобы очистить содержимое текстового поля управления загрузкой файла, когда суб-вызов вызывается с помощью кнопки, например btnClear. Вышеприведенный код работает на визуальных веб-страницах asp.net.

Ответ 8

Как насчет просто

Если (File1Upload.HasFile) Затем          File1Upload = Nothing