Добавление настраиваемого элемента управления со свойством коллекции в макет страницы SharePoint - PullRequest
0 голосов
/ 20 января 2011

Я создал пользовательский элемент управления со свойством коллекции в соответствии с примером на Как создать пользовательский элемент управления ASP.NET со свойством коллекции?

Когда элемент управления добавляется вобычная ASP.Net ASPX-страница, она работает как положено.Однако при добавлении к макету страницы в Sharepoint возникает следующая ошибка:

Невозможно привести объект типа 'System.Web.UI.CollectionBuilder' к типу 'System.Collections.Generic.List`1 [mytypes.mytype] '.

Код в значительной степени идентичен коду, представленному в примере, показанном по ссылке выше.Я не думаю, что ошибка кроется в элементе управления, поскольку он отлично работает в простом веб-проекте.

1 Ответ

2 голосов
/ 21 января 2011

Я не думаю, что вы можете использовать общие списки в sharepoint. Вместо этого используйте ArrayList или настроенную коллекцию List (используйте asp: ListItem в качестве экзамена, у нее есть собственный тип коллекции)

[ParseChildren(true, "Names")]
public class MyControl : Control {
    private List<PersonName> names;
    public MyControl() {
        names = new List<PersonName>();
    }
    [PersistenceMode(PersistenceMode.InnerDefaultProperty)]
    public List<PersonName> Names {
        get { return this.names; }
    }
}
public class PersonName {
    public string Name { get; set; }
}

UPDATE

Ага, теперь я вижу проблему, дело не в общем списке, а в том, как вы выполняете инициализацию.

  1. Создать приватную переменную для хранения списка private List<PersonName> names;
  2. Убедитесь, что у свойства нет установщика
...