Как очистить содержимое текстового поля в элементе управления FileUpload в ASP.NET?
Очистить содержимое FileUpload в ASP.NET
Ответ 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