如何在jQuery数据表中按值查找特定行?

nha*_*erl 5 jquery datatables

我想在模态窗口中的数据表表中找到一个特定的行值.我正在寻找https://datatables.net/reference/type/row-selector,但据我所知,它全部基于选择器或内部ID.在我的情况下,我有2列,我希望能够在ajax请求后查找特定行以更新记录.

success: function (data) {
                if (data.status_id > 0) {
                    alert(data.info);
                } else {
                    alert(data.info);
                }
                contractsTable.row.add(dataJSON).draw(false);
         }
Run Code Online (Sandbox Code Playgroud)

编辑

现在我的代码 - 我已经构建了自己独特的rowid并使用了id的选择器

检索数据对象

...
var d = datatable.row(this).data();
... set form values and so on
Run Code Online (Sandbox Code Playgroud)

保存并刷新数据表

$('#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');

            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

Gyr*_*com 5

您可以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);
Run Code Online (Sandbox Code Playgroud)

请注意,fnFindCellRowIndexes.js除了jQuery DataTables CSS / JS文件之外,您还需要包括其他内容。

有关代码和演示,请参见此jsFiddle