Я написал специальное поле, которое расширяет 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;
}
}
Когда контроль сохраняет данные поля, я вижу, что он возвращает коллекцию, которая имеет несколько значений.
Но когда я снова получаю данные, я получаю только первое значение. Я получаю значение из свойства элемента управления ListItemFieldValue.
Пожалуйста, дайте мне совет. Большое спасибо.