umbraco如何以编程方式更新多个前置值
我有一个成员类型,它有一个自定义属性——让我们将其命名为数据类型复选框的books——因此可以进行多选 现在,我正尝试通过编程方式为书籍更新此成员的新值。在customxml中,它作为cdata提供,我将传递一个值作为umbraco如何以编程方式更新多个前置值,umbraco,member,multiple-choice,customproperty,Umbraco,Member,Multiple Choice,Customproperty,我有一个成员类型,它有一个自定义属性——让我们将其命名为数据类型复选框的books——因此可以进行多选 现在,我正尝试通过编程方式为书籍更新此成员的新值。在customxml中,它作为cdata提供,我将传递一个值作为 umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email); member.SetProperty("mem
umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.SetProperty("memberBooks", booksValue);
member.Save();
其中“booksValue”是一个用逗号分隔的值字符串,因为它在contentXml中的显示方式是这样的
它不起作用
问题是-如何使用新的多个值更新成员属性/xml?以下是您需要执行的操作:
umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.getProperty(“memberBooks”).Value = booksValue;
member.Save();
我希望这能奏效。我很久没有试过了,但我就是这样使用的。我已经解决了这个问题 两者 及 工作 我只是传递了错误的值 在contentXml中,它们显示为值,但实际上我需要使用ID更新属性,因此如果数据类型为复选框列表,并且值如下所示: 一本书 2-booko 3-布基 然后在contentXml中,它显示为一个列表“book,booko,booki”,但要以编程方式更新它,我必须将“1,2,3”传递给属性 因此,它应该是:
member.SetProperty("memberBooks", "1,2,3");
而不是:
member.SetProperty("memberBooks", "book,booko,booki");
我希望它能帮助其他人解决同样的问题。Hi@Ankur Ghelani,谢谢,但我试过了,它也不起作用。我很高兴你找到了解决方案。这很有帮助,但你仍然需要获得ID。我创建了扩展方法来帮助解决这个问题
member.SetProperty("memberBooks", "1,2,3");
member.SetProperty("memberBooks", "book,booko,booki");