不使用gallery控件
时间: 2024-03-21 14:41:00 浏览: 48
非常抱歉之前的回答有误,PowerApps 的 DataTable 控件确实没有 VisibleRows 属性,也没有类似于 Gallery 控件的 Items 属性。以下是一种不使用 Gallery 控件实现分页的方法:
1.在 PowerApps 中创建一个新的屏幕,然后添加一个 DataTable 控件。
2.将 DataTable 的 Items 属性设置为筛选后的数据源 filteredData。
3.为 DataTable 添加两个按钮,一个用于上一页,一个用于下一页,并为它们分别设置 OnSelect 属性。
4.在屏幕上添加一个文本框,用于显示当前页码,将其默认值设置为 1。
5.在文本框的 Text 属性中添加以下公式,用于显示当前页码:
```
Text(currentPage)
```
6.为上一页按钮的 OnSelect 属性添加以下公式:
```
If(Value(PageNumber.Text)>1,UpdateContext({currentPage:Value(PageNumber.Text)-1, firstRowIndex:If(currentPage=2,0,firstRowIndex-5)}))
```
这里的 firstRowIndex 变量用于跟踪 DataTable 中第一个显示的行的索引。当点击上一页按钮时,如果当前页码大于 1,则将 currentPage 减 1,同时将 firstRowIndex 减去 5。如果 currentPage 等于 2,则将 firstRowIndex 重置为 0。
7.为下一页按钮的 OnSelect 属性添加以下公式:
```
If(Value(PageNumber.Text)<Ceiling(CountRows(filteredData)/5),UpdateContext({currentPage:Value(PageNumber.Text)+1, firstRowIndex:If(currentPage=1,firstRowIndex+5,firstRowIndex)}))
```
当点击下一页按钮时,如果当前页码小于总页数,则将 currentPage 加 1,同时将 firstRowIndex 加上 5。如果 currentPage 等于 1,则不需要改变 firstRowIndex 的值。
8.在 DataTable 的 Data 属性中添加以下公式,用于根据 firstRowIndex 和每页显示的行数来计算应该显示哪些行:
```
Table.Skip(Table.FirstN(filteredData,firstRowIndex+5),firstRowIndex)
```
这里的 Table.FirstN 函数用于获取 filteredData 的前 n 行数据,Table.Skip 函数用于跳过前 n 行数据。
完成以上步骤后,您可以尝试在应用程序中运行该屏幕,并使用上下页按钮来分页显示 DataTable 中的数据。
阅读全文