JSP 如果选择了colVis DataTable中的任何列表项,则捕获

3qpi33ja  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(247)

我使用DataTables的colVis按钮来显示/隐藏一些表列;我想实现一个图标,根据我看到的是完整的表格(所有行都可见)还是修改后的表格(colVis取消选择了一些行)来改变颜色。
编码:

buttons: [
          {extend: 'colvis',
           orientation : 'landscape',
           pageSize : 'LEGAL',
           className: 'ux btn colvis',
           collectionLayout: 'three-column',
           postfixButtons: [
               {
                  extend:'colvisGroup',
                  text:'Sel. tutte',
                  show:':hidden'
                }
           ]} 
]

我面临的主要问题是,我不知道如何访问列表项按钮,也不知道colVis中的按钮是否处于活动状态。
example
查看图片时,如果选择了一个或多个列表项,则右上角的圆圈按钮应变为红色。

g6baxovj

g6baxovj1#

您可以通过使用column-visibility.dt事件检测列的可见性何时发生变化来实现这一点,该事件将在使用colvis按钮的任何时候触发。
当事件触发时,您可以使用columns().visible().toArray()判断是否所有数据行都是可见的,columns().visible().toArray()会传回Map至每一个数据行可见性的布林值数组。
大概是这样的:

table.on('column-visibility.dt', function (e, settings, column, state)
{
    if (table.columns().visible().toArray().every(x => x))
    {
        // All columns are visible, so set your buttons to normal
    } else
    {
        // Some columns are hidden; set your buttons to red.
    }
});

相关问题