响应式折叠格式化程序的要点是折叠由于宽度不足而不再适合表格的行,它可以在较小的屏幕尺寸上启用响应式布局。没有办法强制它提前折叠行,因为它会根据桌子上的可用水平空间折叠它们。
话虽如此,如果您只想在列下显示一些值,使用 rowFormatter 很容易模仿它对表格的影响
var table = new Tabulator("#example-table", {
rowFormatter:function(row){
//row - row component
//define holder elements
var listHolder = document.createElement("div");
var list = document.createElement("table");
//retrieve row data
var data = row.getData();
///add each columns data to the list
listContents += "<tr><td><strong>Name</strong></td><td>" + data.name + "</td></tr>";
listContents += "<tr><td><strong>Age</strong></td><td>" + data.age + "</td></tr>";
//add contents to list
list.innerHTML = listContents;
listHolder.appendChild(list);
return listHolder;
},
});
有关行格式化程序的更多详细信息,请查看Format Documentation
您可以使用 rowFormatter 对行布局进行大量更改,Row Formatter Example 演示了一个极端情况,您可以在需要时将列全部替换
带切换按钮
如果你想要一个类似于折叠格式化程序的切换按钮,那么你需要做两件事,在行数据中存储对列表元素的引用,并定义一个格式化程序以添加到切换列。
//define toggle formatter
var toggleFormatter = function(cell){
var toggleEl = document.createElement("button"); // create your toggle button
toggleEl.addEventListener("click", function(){
var listHolder= cell.getData().listHolder; //lookup list element from row data
listHolder.style.display = listHolder.style.display ? "none" : ""; //toggle the display property on the list element
});
}
var table = new Tabulator("#example-table", {
rowFormatter:function(row){
//row - row component
//define holder elements
var listHolder = document.createElement("div");
var data = row.getData();
// CREATE TABLE AS PER ABOVE EXAMPLE
// store the list element on the row data (without triggering an update)
data.listHolder = listHolder;
return listHolder;
},
columns:[
//define toggle column
{formatter:toggleFormatter, width:30, minWidth:30, hozAlign:"center", resizable:false, headerSort:false},
//...other columns
]
});