Sharepoint Custom SPFieldLookup сохранить только одно значение - PullRequest
0 голосов
/ 26 декабря 2009

Я написал специальное поле, которое расширяет 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.

Пожалуйста, дайте мне совет. Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2009

Вы должны наследовать класс управления полем от MultipleLookupField, а не от LookupField. Вы уверены, что делаете это?

0 голосов
/ 28 декабря 2009

Логика хранения данных отличается в базе данных для поля поиска с одним значением по сравнению с несколькими значениями. Убедитесь, что в определении типа поля для xml ParentType установлено значение LookupMulti вместо Lookup .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...