Sharepoint Custom SPFieldLookup只保存一个值

时间:2009-12-26 02:52:56

标签: sharepoint controls field

我编写了一个扩展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属性中获取值。

请给我一个提示。非常感谢你。

2 个答案:

答案 0 :(得分:0)

数据存储逻辑在查找字段的数据库中是不同的,其中一个值与多个值相比较。检查字段类型定义xml ParentType 是否设置为 LookupMulti 而不是 Lookup

答案 1 :(得分:0)

您必须从MultipleLookupField而不是LookupField继承字段控制类。你确定你这样做了吗?