javascript jQuery datatable在保存列视图时删除最后一个索引

mi7gmzs6  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(85)

我想把列状态保存在jQuery datatable中的stateSaveCallback数组中。默认情况下,我有13列,我只有9个隐藏/显示在我的colvis按钮。我的问题是我保留的数组一开始是13真,开始隐藏后,每次隐藏它,数组的长度都减少1。但是,我想要的数组的长度应该保持不变13,如果索引是隐藏的,它应该在数组中变成false,我已经尝试了很长一段时间,请帮助
我只是尝试colvis在我添加到按钮的列之间旋转,但它仍然显示出相同的行为。

ilmyapht

ilmyapht1#

已解决状态保存回调:function(settings,data){ var columns = element.columns().visible();

var colVisState = $.map(columns, function (col, i) {
                    return col ? true : false;
                });

                data.colVisState = colVisState;
                var portfolioId = "@ViewBag.CurrentPortfolio.Id";

                var columnStatus = data.colVisState;
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("DataTableVisibilityCustomization", "Portfolio")',
                    data: { ColumnStatus: JSON.stringify(columnStatus), portfolioId: portfolioId },
                    success: function (result) { console.log(result.data); }
                });
            },
izj3ouym

izj3ouym2#

这是我的stateSaveCallback函数

stateSaveCallback: function(settings, data) {
  var columns = [];
  $('#' + tableId + ' th').each(function() {
    var index = $(this).index();
    columns.push(settings.aoColumns[index].bVisible ? true : false);
  });
  console.log(columns);
  var portfolioId = "@ViewBag.CurrentPortfolio.Id";

  var columnStatus = columns;
  $.ajax({
    type: 'POST',
    url: '@Url.Action("DataTableVisibilityCustomization", "Portfolio")',
    data: {
      ColumnStatus: JSON.stringify(columnStatus),
      portfolioId: portfolioId
    },
    success: function(result) {
      console.log(result.data);
    }
  });
},

相关问题