내 MVC 응용 프로그램에서 Datatables 및 삭제에 문제가 있습니다. 클릭 할 때마다 사용자가 해당 행을 삭제할 것인지 묻는 모달 창을 열 때마다 각 행에 대한 단추가 있습니다. "확인"을 클릭하면 데이터가 내 데이터베이스에서 제거되고 삭제 된 행은 삭제되며 창은 닫힙니다. 이 모든 행을 삭제할 때 예상대로 작동합니다. 그러나 페이지를 새로 고치지 않고 첫 번째 삭제 후 다른 행을 삭제하려고하면 문제가 발생합니다.MVC + Datatables : 한 번 이상 삭제 실행
두 번째로 삭제를 클릭하면 내 함수는 처음에 의 초기 행을 삭제하려고 시도하고 더 이상 존재하지 않으므로 실패합니다. 그런 다음 즉시 삭제를 요청한 새 행을 삭제합니다. 나는 어떤 ID에 삭제 기능이 있는지 말해주는 콘솔 출력을 가지고 있으며 이전 ID가 먼저 함수에 다시 전달되고 있음을 나타냈다. I는 (ID = 87) 행 하나를 삭제 한 후 콘솔 또는 페이지 여기
clicked delete on 87
Deleting #87
DELETE http://localhost:49773/api/IncidentAPI/87
200 OK
Deleted
clicked delete on 87
Deleting #87
DELETE http://localhost:49773/api/IncidentAPI/87
500 Internal Server Error
clicked delete on 84
Deleting #84
DELETE http://localhost:49773/api/IncidentAPI/84
200 OK
"NetworkError: 500 Internal Server Error - http://localhost:49773/api/IncidentAPI/87"
Deleted
상쾌하지 않고 다른 (= 84 ID와 함께)를 삭제하면 다음
내 삭제 버튼의 코드 내 OUPUT이다 각 행에 다음$('.Delete').unbind().on("click", function() {
var tr = $(this).closest('tr');
var ID = dataLog.row(tr).data()[16];
tr.addClass('deleteHighlight');
$('#deleteWindow').dialog('open');
$('.deleteOK').on("click", function() {
console.log("clicked delete on " + ID);
deleteIncident(ID); // deletes the row with that ID
$('.Details').bind();
});
$('.deleteClose').on('click', function (event, ui) {
console.log("Close delete");
tr.removeClass('deleteHighlight', 500);
$('#deleteWindow').dialog('close');
});
});
는
function deleteIncident(ID) {
var rowID = '#' + ID;
console.log("Deleting " + rowID);
$.ajax({
url: '/api/IncidentAPI/' + ID,
type: 'DELETE',
contentType: "application/json; charset=utf-8",
success: function (results) {
console.log("Deleted");
dataLog.row(rowID).remove().draw();
$('#deleteWindow').dialog('close');
}
});
}
이것은 문제를 해결하지 못했습니다. –