我编写了一个扩展SPFieldLookup的自定义字段。我设置AllowMultipleValues = true; 这是字段控制值:
public override object Value
{
get
{
EnsureChildControls();
SPFieldLookupValueCollection vals = new SPFieldLookupValueCollection();
ICollection s = TinBaiLienQuanPicker.SelectedIds;
if (s != null && s.Count > 0)
{
foreach (var i in s)
{
ListItem z = availableItems.Find(x => (x.Value == i.ToString()));
if (z != null)
{
vals.Add(new SPFieldLookupValue(int.Parse(z.Value), z.Text));
}
}
}
return vals;
}
set
{
EnsureChildControls();
base.Value = value as SPFieldLookupValueCollection;
}
}
当控制保存字段数据时,我看到它返回一个具有多个值的集合。 但是当我再次检索数据时,我只收到第一个值。我从Control Field的ListItemFieldValue属性中获取值。
请给我一个提示。非常感谢你。
答案 0 :(得分:0)
数据存储逻辑在查找字段的数据库中是不同的,其中一个值与多个值相比较。检查字段类型定义xml ParentType 是否设置为 LookupMulti 而不是 Lookup 。
答案 1 :(得分:0)
您必须从MultipleLookupField
而不是LookupField
继承字段控制类。你确定你这样做了吗?