如何基于集合中仅可见行更新SharePoint列表Nominations?
解决方法
你当前的UpdateIf代码用true作为匹配条件,会命中整个SharePoint列表的所有项,所以才会全部更新。要实现仅更新过滤后集合中的行,只需把匹配条件改成判断列表项是否存在于过滤后的集合中,用唯一标识(比如ID字段)精准匹配即可。
假设你过滤后的集合名为FilteredNominations,修改后的代码如下:
UpdateIf( Nominations, ID in FilteredNominations.ID, { Status: {Value: "Approved"}, 'Approved By': varUser } );
关键说明
- 将
FilteredNominations替换成你实际使用的过滤后集合名称 - 用
ID作为匹配依据是因为它是SharePoint列表项的唯一标识,能避免匹配错误 - 确保你的过滤后集合中包含
ID字段,否则无法完成匹配
如果你的过滤逻辑是直接写在控件(比如Gallery)的Items属性里的表达式,也可以直接把这个表达式放到UpdateIf的条件中,比如:
UpdateIf( Nominations, // 替换成你实际的过滤规则,示例:部门为IT且提名年份为2024 Department = "IT" And NominationYear = 2024, { Status: {Value: "Approved"}, 'Approved By': varUser } );
内容的提问来源于stack exchange,提问作者Chris2015
相关产品推荐
相关产品推荐

