我有一个具有自定义属性的成员类型 - 让我们将其命名为图书 - 数据类型复选框 - 因此可以进行多项选择。
现在,我正在尝试使用 books 的新值以编程方式更新此成员。在customxml中它以cdata形式出现,我将值传递为
umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.SetProperty("memberBooks", booksValue);
member.Save();
其中'booksValue'是一个用逗号分隔的值字符串 - 因为它就是它在contentXml中的显示方式。
它不起作用。
问题是 - 如何使用新的多个值更新成员属性/ xml?
答案 0 :(得分:3)
我已经解决了这个问题。
两个
member.getProperty(“memberBooks”).Value = booksValue;
和
member.SetProperty("memberBooks", booksValue);
工作
我只是传递错误的值。
在contentXml中,它们显示为值,但实际上我需要使用ids更新属性,因此如果数据类型是复选框列表且值如下:
1 - 书
2 - booko
3 - booki
然后在contentXml中显示为“book,booko,booki”列表,但是以编程方式更新它我必须通过:“1,2,3”到该属性。
所以它应该是:
member.SetProperty("memberBooks", "1,2,3");
而不是:
member.SetProperty("memberBooks", "book,booko,booki");
我希望它可以帮助其他人解决同样的问题。
答案 1 :(得分:0)
这是你需要做的:
umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.getProperty(“memberBooks”).Value = booksValue;
member.Save();
我希望这应该有用。我没有尝试过很长时间,但这就是我使用它的方式。