如何通过jQuery数据表中的值查找特定行?
我想从模态窗口中的数据表格中按值查找特定的行。 我正在寻找https://datatables.net/reference/type/row-selector,但据我所知,它都基于选择器或内部ID。 在我的情况下,我有2列,我希望能够查找特定的行以更新ajax请求后的记录。如何通过jQuery数据表中的值查找特定行?
success: function (data) {
if (data.status_id > 0) {
alert(data.info);
} else {
alert(data.info);
}
contractsTable.row.add(dataJSON).draw(false);
}
编辑
这里我的代码现在 - 我已经建立了自己独特的rowid和使用selector by id
检索数据对象
...
var d = datatable.row(this).data();
... set form values and so on
保存并刷新数据表
$('#contractEditSave').on('click', function (e) {
dataJSON = {
id: $('#contractEditForm').data('contractid'),
member_id: $('#contractEditForm').data('memberid'),
member_name: $('#contractEditModalTitle').text(),
box_id: $('#contractBox').val(),
name: $('#contractName').val(),
description: $('#contractDescription').val(),
start: $('#contractStart').val(),
end: $('#contractEnd').val(),
amount: $('#contractAmount').val(),
unit: $('#contractUnit').val(),
max: 1
};
$.ajax({
type: 'POST',
url: '/save',
data: JSON.stringify(dataJSON),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
if (data.status_id == 0)
datatable.row('#' + dataJSON.id).data(dataJSON); //if update
...
} else {
datatable.row.add(dataJSON).draw(false); //if insert
...
}
$("#contractEditModal").modal('hide');
}
});
});
您可以使用fnFindCellRowIndexes
查找在给定列中保存某些数据的行索引。
然后,您可以使用cell().data()
API方法更新单元格。
var table = $('#example').DataTable();
var rowId = $('#example').dataTable()
.fnFindCellRowIndexes('Angelica Ramos', 0);
table
.cell(rowId, 0)
.data('Angelica Ramos (UPDATED)')
.draw(false);
请注意,你需要包括fnFindCellRowIndexes.js
除了jQuery的数据表CSS/JS文件。
查看this jsFiddle的代码和演示。
似乎是最有利的解决方案。无论哪种方式,你都必须自己添加一些过滤。 – davidkonrad
绝对完美的答案... 我所做的虽然是从我的2值中创建一个代理ID,并将其设置为rowid选项。然后我使用美妙的行(字符串rowid)函数来确定行并将数据作为一个对象(我必须解析以设置模态表单值)传递给.data()函数 - 完美无缺! – nhaberl
'search()'是按值查找特定行的方法。请详细说明“查找”和“特定行”和“值”的含义。代码不胜感激。 – davidkonrad
我已经添加了一些代码来获得目的 – nhaberl