#jquery #asp.net-mvc #datatables
#jquery #asp.net-mvc #таблицы данных
Вопрос:
Я использовал таблицы данных для отображения страницы списка с некоторым содержимым. Я следую этому примеру, чтобы выполнить пользовательское действие над выбранной строкой, аналогичное примеру удаления. Однако в моем случае я определил атрибут data-id, в котором я сохранил уникальный идентификатор для этой строки.
<tr class="odd selected" data-id="349" role="row">
<td class="sorting_1"> 1/04/2014 </td>
<td> Grocery - Woolworths </td>
<td> Grocery </td>
<td> -58.33 </td>
</tr>
С помощью приведенного ниже кода я могу получить доступ к выбранной строке.
$("#btnSplitTransaction").click(function () {
var recordId = table.row('.selected');
});
Однако, когда я пытаюсь получить доступ к идентификатору данных attr с помощью приведенного ниже кода, я не получаю правильного результата.
$("#btnSplitTransaction").click(function () {
var recordId = table.row('.selected').attr('id');
});
Что я здесь делаю не так?
Комментарии:
1.
attr('data-id')
Не сработало?
Ответ №1:
Использовать data()
вместо attr()
get data-id
$("#btnSplitTransaction").click(function () {
var recordId = table.row('.selected').data('id');
});
Если вы хотите использовать attr, который не рекомендуется для атрибута данных, укажите полное имя атрибута вместо идентификатора data-id
var recordId = table.row('.selected').attr('data-id');
Комментарии:
1. при использовании data (‘id’) я получаю следующую ошибку: Предупреждение о таблицах данных: идентификатор таблицы = tblTransaction — запрошен неизвестный параметр ‘2’ для строки 15. Для получения дополнительной информации об этой ошибке, пожалуйста, смотрите datatables.net/tn/4
Ответ №2:
Я смог решить эту проблему, автоматически выбрав элемент таблицы и не полагаясь на API Datatables для обработки этого. Ниже приведен код, который я использовал:
var recordId = $('#tblTransaction tr.selected').eq(0).data('id');
Примечание: Здесь я делаю предположение, что можно выбрать только 1 строку. Если вы хотите разрешить выбор нескольких строк, вам нужно выполнить цикл по каждому выбору.