jquery datatables - 刷新不起作用

标签 jquery datatables

我有一个用 jquery dataTables 构建的 htnl 表。我使用的代码是:

var oTable = jQuery('#webcam-table').dataTable({
   "sPaginationType": "full_numbers",
   "bStateSave": true,
   "aaSorting": [[1,"desc"]],
   "aoColumnDefs": [
     { "bSortable": false, "aTargets": [ 4 ] }
   ]
});

该表还有一个表单,每行都有一个复选框,用户可以在其中选择一个或多个并单击删除按钮。这使用 jquery ajax:

jQuery(".deletebutton").on("click", function(e) {
    e.preventDefault(); //cancel click event on start
    var testchecked = jQuery(':checkbox:checked').length;
    if (testchecked == 0) {
        alert('Please select at least one video');
        e.preventDefault();
    }
    else
    {
        if (confirm("Are you sure you want to delete the selected videos?"))
        {
            var checked = jQuery('input:checkbox:checked').map(function () {
                return this.value;
            }).get();
            var $this = jQuery(this);
            jQuery.ajax({
                type: 'POST',
                url: 'index.php?option=com_recordings&task=deletevideos&format=raw',
                data: {checkedarray:checked},
                success: function(data){
                    jQuery('#deleteform input:checkbox').each(function(){
                        if(this.checked){
                            jQuery('input:checkbox:checked').parents("tr").remove();
                        }
                    });

                }
            });
        }
    }
});

它的作用是删除表中的一行。这是我对 dataTable 遇到问题的地方,因为它有页面,当我删除一个或多个页面时,它不会刷新表格。

所以我想我应该能够将 fnDraw 添加到代码中:

jQuery('#deleteform input:checkbox').each(function(){
       if(this.checked){
            jQuery('input:checkbox:checked').parents("tr").remove();
        }
oTable.fnDraw();

我认为这会在我的 AJAX 删除和删除该行之后刷新表格。但这甚至不再删除该行,也不会相应地更新表。当然,当我手动刷新页面时,一切都很好。关于如何删除所选行然后刷新数据表有什么想法吗?

最佳答案

DataTable API具有删除行功能。

fn删除行 删除表格的一行

输入参数:

  • {mixed}:aoData中要删除的行的索引,或TR 您要删除的元素
  • {function|null}:回调函数
  • {bool} [default=true]:是否重绘表格

返回参数:
{array}:被删除的行

代码示例:

$(document).ready(function() {
  var oTable = $('#example').dataTable();

  // Immediately remove the first row
  oTable.fnDeleteRow( 0 );
} );

关于jquery datatables - 刷新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351076/

相关文章:

javascript - jQuery UI 拖放动画问题

JavaScript 函数作用域

jquery - 在 DataTables (jQuery) 中对 3 个表进行排序

php - 带有 "smart searching"的数据表大数据 json ,或者带有正则表达式的服务器端,或者更好的方法?

jquery - 如何访问 MVC3 中的 JQuery DataTables 插件 aoData 值?

javascript - jQuery - 选项卡式内容 - 在选定的选项卡上打开?

javascript - JS Numbers - 在 .fixed 之后使用区域设置字符串

javascript - Bootstrap TreeView 不显示树

javascript - 如何使用正则表达式使用数据表进行多值或列搜索?

javascript - 日期时间值在 jQuery 数据表中未正确显示