1

我有一个成员类型,它有一个自定义属性——让我们将它命名数据类型复选框——因此可以进行多项选择。

现在,我正在尝试使用新值以编程方式更新此成员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?

4

2 回答 2

3

我已经解决了这个问题。

两个都

member.getProperty(“memberBooks”).Value = booksValue;

member.SetProperty("memberBooks", booksValue);

工作

我只是传递了错误的值。

在 contentXml 中,它们显示为值,但实际上我需要使用 id 更新属性,所以如果数据类型是复选框列表并且值如下:

1 - 书

2 - 书

3 - 预订

然后在 contentXml 中,它显示为列表“book,booko,booki”,但要以编程方式更新它,我必须将:“1,2,3”传递给属性。

所以应该是:

member.SetProperty("memberBooks", "1,2,3");

代替:

member.SetProperty("memberBooks", "book,booko,booki");

我希望它可以帮助其他有同样问题的人。

于 2013-06-27T08:45:49.987 回答
0

这是你需要做的:

umbraco.cms.businesslogic.member.Member member = umbraco.cms.businesslogic.member.Member.GetMemberFromEmail(email);
member.getProperty(“memberBooks”).Value = booksValue;
member.Save();

我希望这应该有效。我已经很久没有尝试过了,但这就是我使用它的方式。

于 2013-06-26T10:56:18.787 回答