首页 文章

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

提问于
浏览
4

我想在模态窗口中的数据表表中找到一个特定的行值 . 我正在查看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);
         }

EDIT

现在我的代码 - 我已经构建了自己独特的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');

            }
        });
    });

1 回答

  • 4

    您可以使用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);
    

    请注意,除了jQuery DataTables CSS / JS文件之外,还需要包含 fnFindCellRowIndexes.js .

    有关代码和演示,请参阅this jsFiddle .

相关问题