在获取 Ajax 数据和 draw() DataTable 后删除选定的 class

remove selected class after get Ajax data and draw() DataTable

我试图在用户点击数据库中的 Edit 按钮时重新加载所选行,但在重新加载行并调用 table.row().data(response).draw(false); 后,删除 selected class 从行开始。

$.ajax({
    type: callMethod,
    url: url + '/' + value,
    timeout: 3000,
    error : function(jqXHR, textStatus, errorThrown) {
        
        //create notification
        var notifyOptions = {
                title: '<h4>Error 500</h4>',
                text: '<p>'+ textStatus + '. ' + errorThrown + '.</p>',
                type: 'error'
        }
        
        show_notification(notifyOptions);
        
    },
    success: function(response) {
        
        table.row().data(response).draw(false);
        
        table.row(selected).select();
        
    }
}).done(function(data) {

    table.row(selected).select();

});

我在 successdone 中写了 table.row(selected).select(); 但这不起作用。

我也用过:

table.on( 'draw.dt', function () {
    $(table.context[0].aoData[selected].nTr).addClass('selected');
});

但我知道我不能使用它。因为在删除行时有错误。

谢谢

我找到了一个解决方案,适用于 DataTables,我重写了函数:

editview 行之后:

$.ajax({
    type: callMethod,
    url: url + '/' + value,
    timeout: 3000,
    error : function(jqXHR, textStatus, errorThrown) {
        
        //create notification
        var notifyOptions = {
                title: '<h4>Error 500</h4>',
                text: '<p>'+ textStatus + '. ' + errorThrown + '.</p>',
                type: 'error'
        }
        
        show_notification(notifyOptions);
        
    },
    success: function(response) {
        
        table.row().data(response).draw(false);
        
        table.on( 'draw.dt', function () {
            $(table.context[0].aoData[selected].nTr).addClass('selected');
        });
        
    }
}).done(function(data) {

    ...

});

remove行之后:

$.ajax({
    type: callMethod,
    url: url + '/' + value,
    timeout: 3000,
    error : function(jqXHR, textStatus, errorThrown) {
        
        //create notification
        var notifyOptions = {
                title: '<h4>Error 500</h4>',
                text: '<p>'+ textStatus + '. ' + errorThrown + '.</p>',
                type: 'error'
        }
        
        show_notification(notifyOptions);
        
    },
    success: function(response) {
        
        table.off( 'draw.dt');
        
    }
}).done(function(data) {

    ...

});