From 9b28daf89d6ade7d56fbd5a9502e60594daa9a9e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 8 Dec 2023 22:17:50 +0800 Subject: [PATCH] :art: Database table view supports paged loading https://github.com/siyuan-note/siyuan/issues/9424 --- kernel/model/attribute_view.go | 39 ++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 8f8928531..8292808ba 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -378,6 +378,27 @@ func renderAttributeView(attrView *av.AttributeView, viewID string, page, pageSi viewable.FilterRows() viewable.SortRows() viewable.CalcCols() + + // 分页 + switch viewable.GetType() { + case av.LayoutTypeTable: + table := viewable.(*av.Table) + table.RowCount = len(table.Rows) + if 1 > view.Table.PageSize { + view.Table.PageSize = 50 + } + table.PageSize = view.Table.PageSize + if 1 > pageSize { + pageSize = table.PageSize + } + + start := (page - 1) * pageSize + end := start + pageSize + if len(table.Rows) < end { + end = len(table.Rows) + } + table.Rows = table.Rows[start:end] + } return } @@ -621,24 +642,6 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View, page, p } return iv < jv }) - - // 分页 - ret.RowCount = len(ret.Rows) - if 1 > view.Table.PageSize { - view.Table.PageSize = 50 - } - ret.PageSize = view.Table.PageSize - if 1 > pageSize { - pageSize = ret.PageSize - } - - start := (page - 1) * pageSize - end := start + pageSize - if len(ret.Rows) < end { - end = len(ret.Rows) - } - ret.Rows = ret.Rows[start:end] - return }