Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从单元格组件内部检测行选择更改_Javascript_Tabulator - Fatal编程技术网

Javascript 从单元格组件内部检测行选择更改

Javascript 从单元格组件内部检测行选择更改,javascript,tabulator,Javascript,Tabulator,我在应用程序中使用了一些数据需求,并创建了一些自定义的cell.s 我目前有一个带有“编辑”按钮的自定义单元格,可以切换行选择及其可编辑性。网格外部还有一个按钮,用于选择所有行(如屏幕截图所示) 我想做的是在突出显示行时(通过单击“编辑”按钮或以编程方式选择所有行),将按钮从“编辑”更改为“取消” 从单元格中的with,我可以通过执行cell.getRow().isSelected()来获取当前行选择,但我看不到检测特定行选择何时更改的方法 我想到的一个解决方案是使用CSS隐藏/显示“编辑”或

我在应用程序中使用了一些数据需求,并创建了一些自定义的cell.s

我目前有一个带有“编辑”按钮的自定义单元格,可以切换行选择及其可编辑性。网格外部还有一个按钮,用于选择所有行(如屏幕截图所示)

我想做的是在突出显示行时(通过单击“编辑”按钮或以编程方式选择所有行),将按钮从“编辑”更改为“取消”

从单元格中的with,我可以通过执行
cell.getRow().isSelected()
来获取当前行选择,但我看不到检测特定行选择何时更改的方法

我想到的一个解决方案是使用CSS隐藏/显示“编辑”或“取消”按钮,因为tablator会将类
tablator selected
添加到高亮显示的任何内容中。但这似乎更像是一个黑客

提前感谢您的想法、意见和评论



如果相关的话,我将使用包装在组件中。自定义单元格目前只是一个普通的JS。

我找到了一种检测单元格中行选择变化的合适方法。它使用MutationObserver API并检查所选
制表器
CSS类的行元素

(我还开了一家银行,所以将来可能会有不同的处理方式)


我找到了一种检测单元格中行选择变化的合适方法。它使用MutationObserver API并检查所选
制表器
CSS类的行元素

(我还开了一家银行,所以将来可能会有不同的处理方式)


正确的方法是在单元格上使用格式化程序,根据行的选定状态设置切换的选定状态,可以使用
cell.getRow().isSelected()

然后,您可以使用行组件上的rowSelectionChanged回调和reformat函数在该行的选择状态更改时触发该行的重新格式化:

var table = new Tabulator("#example-table", {
    rowSelectionChanged:function(data, rows){
        rows.forEach(function(row){
            row.reformat();
        });
    },
});
var table = new Tabulator("#example-table", {
    rowSelectionChanged:function(data, rows){
        rows.forEach(function(row){
            row.reformat();
        });
    },
});

正确的方法是在单元格上使用格式化程序,根据行的选定状态设置切换的选定状态,可以使用
cell.getRow().isSelected()

然后,您可以使用行组件上的rowSelectionChanged回调和reformat函数在该行的选择状态更改时触发该行的重新格式化:

var table = new Tabulator("#example-table", {
    rowSelectionChanged:function(data, rows){
        rows.forEach(function(row){
            row.reformat();
        });
    },
});
var table = new Tabulator("#example-table", {
    rowSelectionChanged:function(data, rows){
        rows.forEach(function(row){
            row.reformat();
        });
    },
});

制表器中内置了回调函数,可在行选择发生更改时通知您,rowSelectedrowSelectedrowSelectionChanged。这些文件的完整文档可在

在格式化程序中更改单元格的格式是安全的,因此您希望监视行上所选内容的更改,然后触发该行的重新格式化:


制表器中内置了回调函数,可在行选择发生更改时通知您,rowSelectedrowSelectedrowSelectionChanged。这些文件的完整文档可在

在格式化程序中更改单元格的格式是安全的,因此您希望监视行上所选内容的更改,然后触发该行的重新格式化: