是否可以遍历画廊成员的重复?

问题描述 投票:0回答:1

我有一个重复其内容的画廊。它有一个用于人名的文本输入,另一个用于他们的电子邮件。用户可以单击加号图标(该图标不在图库中)以生成包含这两个文本输入的新行。他们可以根据需要多次单击加号图标,每次都会生成一个新行。我相信这种设置的技术术语是“重复表”。

我希望我可以使用

ForAll(galleryName.AllItems, [...])
遍历这些文本输入中的每一个,并将每一对作为新行写入我的后端 SharePoint 列表中。但是,
.AllItems
似乎循环遍历组成画廊的成员,而不是用户看到的元素。例如,我相信一个重复 100 行的重复表在
galleryName.AllItems
中的项目数与只有原始行的重复表相同。

有什么方法可以编写一个循环遍历画廊成员并尊重重复的循环吗?我的最终目标是写一些这样的代码

ForAll(galleryName.AllItems As gal, //Doesn't work because AllItems isn't what I want.
    Patch('My SharePoint List',
           Defaults('My SharePoint List'),
           {Name: gal.txtInputThatHoldsTheName.Name, Email: gal.txtInputThatHoldsTheEmail.Email}))
loops gallery powerapps powerapps-canvas powerapps-collection
1个回答
0
投票

一个想法是有一个隐藏的标签(或任何其他控件)来存储每行的当前状态,例如现有行的标签将带有文本“现有”/空,通过单击 + 号添加的任何新行都将是“新建”。

然后在您的 ForAll 中,您将过滤

YourLabel.Text = "New"

ForAll(
    Filter(galleryName.AllItems, YourLabel.Text = "New"),
    Patch('My SharePoint List',
    Defaults('My SharePoint List'),
    { 
        Name: txtInputThatHoldsTheName.Name, 
        Email: txtInputThatHoldsTheEmail.Email 
    }
    )
)

您甚至不需要使用

gal.txtInputThatHoldsTheName
即可工作,只需使用
ControlName.Text / ControlName.Value / ControlName.Selected.Value
。标签可能需要可见,但您可以将高度设置为 0

© www.soinside.com 2019 - 2024. All rights reserved.