如何通过编码在droplink中分配值?
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item PriceBookHome = master.GetItem("/sitecore/content/Administration/Price Books/Clarisonic-us-retail");
string currency = "INR";
string currenySource = PriceBookHome.Fields["Currency"].Source;
Sitecore.Data.Items.Item currenyDictSource = master.GetItem(currenySource);
foreach (Item im in currenyDictSource.GetChildren())
{
if (im.Fields["Key"].Value == currency)
{
PriceBookHome.Editing.BeginEdit();
PriceBookHome.Fields["Currency"].SetValue(im.DisplayName, true);
PriceBookHome.Editing.EndEdit();
}
}
插入后我在droplink上收到以下错误:“此字段包含一个不在选择列表中的值”
错误我得到如下:
droplink source [droplink中给定来源的货币路径]
答案 0 :(得分:3)
您需要将货币项的ID设置为值,而不是名称。
PriceBookHome.Fields["Currency"] = im.ID.ToString();
答案 1 :(得分:0)
很可能是因为你在字段中存储了一个字符串(显示名称)。
正如Ruud所说,您可以将ID放入或执行以下操作:
PriceBookHome.Editing.BeginEdit();
var field = (Sitecore.Data.Fields.ReferenceField)PriceBookHome.Fields["Currency"];
field.TargetItem = im;
PriceBookHome.Editing.EndEdit();