【发布时间】:2020-01-07 15:27:48
【问题描述】:
我有点困惑,为什么我在使用标头过滤时执行table.getSelectedData() 时总是得到完整的行列表。我有一个包含 16 行的表。我对电子邮件地址进行标题过滤并获得 3 行。然后我检查标题中的全选复选框并使用按钮单击事件来记录选择的内容。无论我使用“活动”、“可见”还是什么都不用,我总是得到 16 行。
我试过了
cell.getRow().toggleSelect("active");
cell.getRow().toggleSelect("visible");
cell.getRow().toggleSelect();
随着
table.getSelectedData("active");
table.getSelectedData("visible");
table.getSelectedData();
表初始化如下:
var table = new Tabulator("#rules-table", {
height: 600,
data:tabledata,
layout:"fitColumns",
persistentSort:true,
selectable:true,
selectablePersistence:false,
pagination:"local",
movableColumns: true,
columns:[
{title:"UUID", field:"uuid", headerFilter:"input", frozen:true, width:300},
{title:"Type", field:"type", headerFilter:"input", width:100},
{title:"SubType", field:"subtype", headerFilter:"input", width:100},
{title:"AssetUUID", field:"asset_uuid", headerFilter:"input", width:300},
{title:"Info", field:"info", headerFilter:"input"},
{title:"Owner", field:"owner", headerFilter:"input", width:200},
{formatter:"rowSelection", titleFormatter:"rowSelection", align:"center", width:20, headerSort:false, cellClick:function(e, cell){
cell.getRow().toggleSelect("active");
}},
{formatter:printIcon, width:0, align:"center", width:26, headerSort:false, cellClick:function(e, cell){generate_assets_options_menu(e, cell)}}
],
});
所以为了描述更多,然后我进行一些标题过滤以减少行,选择我想要的行,并使用按钮获取选定的行以进行数据库删除操作。如果我手动选择特定行,一切正常。
但是,当我使用标题过滤器缩减并单击标题复选框以选择所有可见行(假设过滤后有 3 行)时,当我打印出已选择的内容时,我总是得到所有内容,即 16 行。
删除按钮点击事件如下:
var selectedData = table.getSelectedData("active");
var selectedRows = table.getSelectedRows("active");
console.log(selectedData);
console.log(selectedRows);
【问题讨论】:
标签: javascript tabulator