如何在sapui5中启用sap.m.Table中的滚动?

时间:2016-12-06 11:18:10

标签: sapui5 sap.m

我已经实现了sap.m.Table但是没有显示所有记录。似乎也没有滚动选项。 我浏览了api,建议使用增长的,增长的阈值,增长smp.m.ListBase的ScrollToLoad。

此处增长会使表格控件加载更多项目, growingThreshold 将决定每个版本的模型请求的项目数量 getGrowingScrollToLoad 可让用户滚动浏览记录而非“更多”记录。显示按钮以加载更多数据。

然而,即使在使用这些属性后,我的整个数据仍未呈现,我可以看到更多按钮而不是滚动条。更多'以下'按钮我能够看到一个数字,它确定要渲染的整个记录​​数以及在初始视图中渲染的记录数。

如果数据超出了网页的限制,是否不应该滚动默认选项?我很困惑。请帮忙。

我也经历了this帖子! :)

2 个答案:

答案 0 :(得分:5)

2019年3月8日更新:

现在有一种新方法可以在带有粘性选项的sap.m.Table中启用滚动。 请查看API和示例以获取更多示例。 建议采用这种新方法,并通过库直接提供支持和开发。 检查:https://sapui5.hana.ondemand.com/#/api/sap.m.ListBase/methods/setSticky

旧答案:

考虑如何精心设置问题,选项:

  1. sap.ui.table.Table:使用固定标题滚动。
  2. sap.m.Table:增长列表,srcollable没有固定标题。
  3. 但很多时候我们需要一个 sap.m.Table-可滚动但有静态标题,因此表格下方的内容不会进一步向下移动。以下代码将在此期间提供帮助。它有一个带有固定标题的可滚动主体。

    设置:我使用了两个sap.m.Table实例,一个只有标题,另一个只用于数据。另外,我使用了一个可滚动的容器,它容纳了第二个表(没有标题)。由于Scrollable容器的固定宽度,我们看到一个滚动条。虚拟代码如下:

    View.xml:

    <Table showNoData='false'>
                <columns>
                    <Column>
                        <header>
                            <Text text='ID' />
                        </header>
                    </Column>
                    <Column>
                        <header>
                            <Text text='First Name' />
                        </header>
                    </Column>
                    <Column>
                        <header>
                            <Text text='Last Name'  />
                        </header>
                    </Column>
                    <Column>
                        <header>
                            <Text text='Gender' />
                        </header>
                    </Column>
                </columns>
            </Table>
            <ScrollContainer height='20rem' vertical='true'> <!-- To have fixed with and enable vertical scrolling of data table -->
            <!-- Table to hold data, data ,data -->
                <Table class='tableHdr' items='{/}'> <!--  CSS class to hide the column header, otherwise we will have 2 headers. -->
                    <columns>
                    <!-- Dont need columns header, as upper table has already defined them. -->
                        <Column >
                        </Column>
                        <Column >
                        </Column>
                        <Column >
                        </Column>
                        <Column >
                        </Column>
                    </columns>
                    <items>
                        <ColumnListItem>
                            <cells>
                                <Text text='{id}' />
                                <Text text='{first_name}' />
                                <Text text='{last_name}' />
                                <Text text='{gender}' />
    
                            </cells>
                        </ColumnListItem>
                    </items>
                </Table>
            </ScrollContainer>
    

    现在,如果你执行上面没有这个样式类的代码,你最终会得到2个表中的2列标题。因此,要删除第二列标题,我使用了以下类:

    .tableHdr .sapMListTblHeaderCell {
                padding: 0rem;
    }
    

    想听听有关此事的反馈。

答案 1 :(得分:0)

默认情况下,如果sap.m.Table中有更多行,则会在那里滚动。 您可以看到working example here

但是,如果您想强制使用固定行可见性,则可以将sap.ui.table.Table与属性visibleRowCountminAutoRowCount一起使用。

另请注意,如果sap.m.Table看不到垂直滚动条,请检查其他css是否覆盖该样式。否则,您可以使用完整的ui代码粘贴问题中的代码。