Я создал метод загрузки, который автоматически загружает файлы из javascript, вызывая веб-сервис. Поскольку это автоматическая загрузка, я хочу добавить кнопку удаления, чтобы пользователи могли удалять свои загруженные файлы. Таким образом, процесс:Удалить соответствующую строку таблицы из javascript
- выбрать файл, когда OnChange событие генерируется файл загружается с помощью вызова веб-сервиса (Это автоматический загрузка)
- ответ Webservice является объектом, состоящим из двух строк переменных
- В случае успеха Я создаю одну строку, заполняя ее возвращенным ответом и добавляя его в существующую таблицу.
- Я хочу добавить для каждой строки кнопку удаления, чтобы удалить загруженный файл, поймав соответствующие значения этой строки. Поэтому мой вопрос: как я могу улавливать соответствующие значения всякий раз, когда я нажимаю кнопку удаления в этой строке?
Ниже мой Javascript код:
function UploadFiles() {
if (window.FormData !== undefined) {
var fileUpload = $("#FileUpload1").get(0);
var files = fileUpload.files;
var fileData = new FormData();
fileData.append(files[0].name, files[0]);
fileData.append('username', 'Test');
$.ajax({
url: 'MyWebservice.asmx/UploadImages',
type: "POST",
contentType: false,
processData: false,
data: fileData,
dataType: "text",
success: function (response) {
var xmlDoc = new DOMParser().parseFromString(response, "application/xml");
var objElementSuccess = xmlDoc.getElementsByTagName("Success")[0];
var textElementSuccess = objElementSuccess.childNodes[0];
var objElementUpload = xmlDoc.getElementsByTagName("UploadedURL")[0];
var textElementUpload = objElementUpload.childNodes[0];
var tableBody = document.getElementById("Tab_UploadedFiles");
tableBody.style.display = "inline";
var tr = document.createElement('TR');
var tdSuccess = document.createElement('TD');
var tdUploadedFiles = document.createElement('TD');
var tdButtonDelete = document.createElement('TD');
tdSuccess.appendChild(document.createTextNode(textElementSuccess.nodeValue));
tdUploadedFiles.appendChild(document.createTextNode(textElementUpload.nodeValue));
tdButtonDelete.style.textAlign = "center";
// here I am adding the delete button .. what should I do here?
// tdButtonDelete.innerHTML = '<input value ="Delete File" onclick="DeleteUploadedFile()" type="button" />';
tr.appendChild(tdSuccess);
tr.appendChild(tdUploadedFiles);
tr.appendChild(tdButtonDelete);
tableBody.appendChild(tr);
},
error: function (err) { alert(err.statusText); }
});
} else {
alert("FormData is not supported.");
}
}
Ниже мой стол:
<table id="Tab_UploadedFiles" class="Tab_UploadedFiles">
<tr>
<th>
File Name
</th>
<th>
Status
</th>
<th>
Delete Uploaded File
</th>
</tr>
</table>
И как я могу поймать этот уникальный номер OnClick? И как я могу передать его функцией DeleteUploadedFile() в моем случае? –
Посмотрите на мой ответ еще раз, я отредактировал его на примере, как вы можете это исправить. –
Кроме того, я настоятельно советую вам пройти через библиотеку jQuery, чтобы узнать, как это облегчит вашу жизнь. Выполнение этого материала с помощью родного JS - это боль в заднице (с учетом личного опыта; -P) –