Я подозреваю, что ваш обработчик кликов не работает, так как ваши строки не существуют к тому времени, когда вы пытаетесь прослушивать клики.Попробуйте изменить это следующим образом:
$('#tblLoginMaster').on('click', 'tr.EditStyle', function () {
...
});
Если это решит вашу проблему, вы можете проверить официальный учебник на эту тему.
Еще одна вещь в вашем кодеменя беспокоит использование метода jQuery $.ajax()
для заполнения таблицы и того метода, который вы заполняете:
- для динамического извлечения данных вы должны использовать DataTables
ajax
и воспользуйтесь преимуществом ajax.dataSrc
:
$('#tblLoginMaster').DataTable({
...,
ajax: {
url: '/LoginMaster/GetLoginData',
method: 'GET',
dataSrc: //here goes json property or the method that retrieves table data out of json response
}
});
- вам не нужно готовить HTML-код таблицы самостоятельно, выможет просто указывать на соответствующие свойства данных источника в опциях
columns
/ columnDefs
и использовать опцию createdRow
для назначения необходимых атрибутов строки:
$('#tblLoginMaster').DataTable({
...,
rowCreated: (tr, _, rowIdx) => $(tr).attr({
'class':'EditStyle',
'data-target': '#addUserModal',
'data-toggle': 'modal',
'value': rowIdx
}),
columns: [
{data: 'Id', header: 'Id'},
{data: 'Name', header: 'Name'},
{data: 'Password', header: 'Password'},
...
]
});
Вы можете неохотно вносить такие глобальные изменения в свое приложение, но в противном случае вы можете столкнуться с различными видами проблем, связанных с асинхронной природой AJAX, и лишить себя возможности использовать множество DataTables * 1034.* Методы API к catcисправьте ошибки или добавьте в свое приложение новые функции.