Я использую Datatables.net для отображения таблицы платежей.
В каждой строке последний столбец содержит кнопку «Редактировать».
<button type="button" class="btn btn-link" data-toggle="modal" data-target="#modalCategoryTypeEditor" data-action="@Url.Action("EditCategory", new { @item.PaymentId })">Edit</button>
Кнопка содержит атрибут действия данных со ссылкой, указывающей на действие.
Кнопка «Редактировать» запускает модальное окно, которое использует функцию загрузки jQuery для вызова Действие кнопки для извлечения содержимого модального тела.
$('#modalCategoryTypeEditor').on('show.bs.modal', function (event) {
var toggleModal = $(event.relatedTarget) // Button that triggered the modal
var actionUrl = toggleModal.data('action') // Extract info from data-* attributes
$(this).find('.modal-body').load(actionUrl);
});
Как только пользователь нажимает кнопку СохранитьКнопка модального окна, на сервере вызывается действие, которое возвращает строковый результат.
Вопрос : Как установить для этого результата строки один из столбцов строки, по которой был выполнен щелчок?Другими словами, в этот момент после закрытия модального режима, как мне узнать, в какой строке щелкнули?
Я знаю, как определить строку, по которой щелкнули - я используюниже.Но он не работает после закрытия модального окна.Даже если я включу это в событие hide.bs.modal.
$('#payments_list tbody').on('click', 'tr', function () {
console.log(table.cell(table.row(this).data()));
});
РЕДАКТИРОВАТЬ:
Чтобы уточнить, я знаю,как получить идентификатор записи, принадлежащей строке, по которой щелкнули.Затем я запускаю свое модальное окно, в котором я делаю изменения, и отправляю изменения на сервер для сохранения.Сервер возвращает строковый ответ, и мне нужно использовать эту строку, чтобы заполнить ячейку в строке, по которой щелкнули.Проблема в том, что ответ сервера происходит намного позже после события щелчка строки.Другими словами, функция, которая обрабатывает событие щелчка строки, запускает модальный режим, и все, функция заканчивается.
$('#exampleTable tbody').on( 'click', 'a', function () {
var data = '';
data = exampleTable.row( $(this).parents('tr') ).data();
console.log(data);
var carId= data['id'];
$('#exampleModal').modal();
})
// function that gets called after ajax form post completes
var onCompleted = function() {
// How do I find out which row was clicked at this point
}
// form inside modal
<form id="formInsideModal" method="post" data-ajax-complete="onCompleted" data-ajax="true" data-ajax-method="post" >
// some input fields to be saved
<button type="submit" id="saveBtnInsideModal">Submit</button>
</form>