Tabulator v3.5.3
Electron デスクトップ アプリ (OSX & PC)
300 以上の項目があるため、Tabulator は奇妙な動作を示しています。最も深刻なのは、アイテムが消えていることです。その他の症状としては、スクロールの「つまみ」のサイズと位置が不安定になり、一貫性がなくなります (例: つまみの位置がリスト全体のスクロール位置を反映していない)。
設定がvirtualDomBuffer
高すぎたり低すぎたりして困っています。300 に設定すると、この動作が発生します。一度に画面に表示されるアイテムは 13 ~ 15 個だけです。Tabulator インスタンスの高さを次のように設定していますheight: "84vh"
。それは、Tabulator が処理できる有効な CSS 値ですか?
1000 に設定しようとしましvirtualDomBuffer
たが、これは間違った処理方法でしょうか?
(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>"
}
}