制表符列表项在滚动时消失; virtualDomBuffer 问题?
Tabulator list items disappear when scrolling; virtualDomBuffer issue?
Tabulator v3.5.3
Electron 桌面应用程序(OSX 和 PC)
对于 300 多个项目,Tabulator 表现出奇怪的行为;最严重的是物品不见了。其他症状包括滚动 "thumb" 大小和位置变得不稳定和不一致(例如,拇指位置未反映整个列表中的滚动位置)。
我想知道我是否将 virtualDomBuffer
设置得太高或太低。将其设置为 300 时会发生此行为。一次只会在屏幕上显示 13-15 个项目。我这样设置 Tabulator 实例的高度:height: "84vh"
。这是 Tabulator 可以处理的有效 CSS 值吗?
我试过将 virtualDomBuffer
设置为 1000,但也许这是错误的处理方式?
(我知道有更新版本的 Tabulator,但我需要支持和现有的应用程序,除非必须,否则不想引入大的变化。
- - - -
制表符实例初始化
eventList = $("#event-list");
eventList.tabulator({
height: "84vh",
virtualDomBuffer: 300,
layout: "fitColumns",
resizableColumns: false,
selectable: 1,
responsiveLayout: "hide",
placeholder: "No Events",
columns: [
{
title: "Events",
field: "startDate",
formatter: eventListRowFormatter,
variableHeight: true,
headerSort: false
},
{ formatter: deleteIcon, width: 5, align: "center", cellClick: deleteFromEventList }
],
rowClick: function (e, row) {
// prevent deselecting clicked row
var selectedRows = eventList.tabulator("getSelectedRows");
if (selectedRows.length == 0) {
eventList.tabulator("selectRow", row);
} else if (isEventDirty == false) {
lastEventSelected = row;
setActiveEvent(row.row.data)
} else {
eventList.tabulator("deselectRow");
eventList.tabulator("selectRow", lastEventSelected);
}
},
rowDeselected: function (row) {
if (isEventDirty == true) {
lastEventSelected = row;
}
},
ajaxLoader: false
});
列格式化程序
function eventListRowFormatter(cell) {
var data = cell.cell.row.data
if (data.eventTitle == "") {
return " - " + "<br>" + "<small>" + data.startDate + "</small>"
} else {
return data.eventTitle + "<br>" + "<small>" + data.startDate + "</small>"
}
}
3.5 版本中存在一些渲染问题,我建议更新到 4.1 版本
Tabulator v3.5.3
Electron 桌面应用程序(OSX 和 PC)
对于 300 多个项目,Tabulator 表现出奇怪的行为;最严重的是物品不见了。其他症状包括滚动 "thumb" 大小和位置变得不稳定和不一致(例如,拇指位置未反映整个列表中的滚动位置)。
我想知道我是否将 virtualDomBuffer
设置得太高或太低。将其设置为 300 时会发生此行为。一次只会在屏幕上显示 13-15 个项目。我这样设置 Tabulator 实例的高度:height: "84vh"
。这是 Tabulator 可以处理的有效 CSS 值吗?
我试过将 virtualDomBuffer
设置为 1000,但也许这是错误的处理方式?
(我知道有更新版本的 Tabulator,但我需要支持和现有的应用程序,除非必须,否则不想引入大的变化。
制表符实例初始化
eventList = $("#event-list");
eventList.tabulator({
height: "84vh",
virtualDomBuffer: 300,
layout: "fitColumns",
resizableColumns: false,
selectable: 1,
responsiveLayout: "hide",
placeholder: "No Events",
columns: [
{
title: "Events",
field: "startDate",
formatter: eventListRowFormatter,
variableHeight: true,
headerSort: false
},
{ formatter: deleteIcon, width: 5, align: "center", cellClick: deleteFromEventList }
],
rowClick: function (e, row) {
// prevent deselecting clicked row
var selectedRows = eventList.tabulator("getSelectedRows");
if (selectedRows.length == 0) {
eventList.tabulator("selectRow", row);
} else if (isEventDirty == false) {
lastEventSelected = row;
setActiveEvent(row.row.data)
} else {
eventList.tabulator("deselectRow");
eventList.tabulator("selectRow", lastEventSelected);
}
},
rowDeselected: function (row) {
if (isEventDirty == true) {
lastEventSelected = row;
}
},
ajaxLoader: false
});
列格式化程序
function eventListRowFormatter(cell) {
var data = cell.cell.row.data
if (data.eventTitle == "") {
return " - " + "<br>" + "<small>" + data.startDate + "</small>"
} else {
return data.eventTitle + "<br>" + "<small>" + data.startDate + "</small>"
}
}
3.5 版本中存在一些渲染问题,我建议更新到 4.1 版本