Как я получил несколько списков с одним и тем же именем на моем сайте SharePoint? - PullRequest
2 голосов
/ 16 июня 2009

У меня есть сайт SharePoint, который создается из пользовательского определения сайта. Определение сайта имеет следующие особенности:

  1. Пользовательский тип контента.
  2. Пользовательский шаблон списка, в котором файл schema.xml ссылается на этот тип содержимого.
  3. Функция экземпляра списка, которая относится к моей функции шаблона списка выше.

В процессе подготовки сайта я активирую каждую из этих функций (каждая на уровне SPWeb) с помощью кода C # в указанном выше порядке. Мой получившийся сайт выглядит так, как я ожидаю, и, кажется, работает нормально, но у него есть странный артефакт, заключающийся в том, что на странице «все содержимое сайта» для моего сайта дважды отображается мой пользовательский список.

Мой список работает нормально - его приемники предметов срабатывают корректно и только один раз. В SharePoint Manager (SPM) я также вижу, что список отображается дважды, и когда я раскрываю дерево, чтобы посмотреть на атрибуты, они отображаются одинаковыми для двух списков (даже для элементов списка внутри списков) , Я подозреваю, что, возможно, я обманываю себя, и SPM может просто смотреть на один и тот же список дважды, в то время как какой-то фактический список мошенников лежит в темных тенях моего сайта.

Итак, что здесь могло пойти не так? Как я мог создать несколько списков с тем же именем? Как я могу правильно создать этот список? И как я могу правильно убрать странности на существующих сайтах, которые демонстрируют такое поведение?


Edit: В ответ на вопрос Майкла Стума я создал это консольное приложение для просмотра списков сайта и получения идентификатора:

using (SPSite site = new SPSite("http://myserver/projects/myproject"))
{
    using (SPWeb web = site.OpenWeb())
    {
        var lists = web.Lists;
        foreach (SPList list in lists)
        {
            Console.WriteLine(list.ID + ": " + list.Title);
        }
    }
}

Этот код показывает мой список дважды - тот же заголовок, тот же идентификатор.


Другое редактирование: Я посмотрел в базе данных контента SharePoint для этого сайта, и я выполнил этот запрос:

SELECT * FROM AllLists where tp_webid = '<my SPWeb guid>'

Это показывает, что есть только один фактический список с заголовком и GUID, который я получил из моего кода C # выше. Итак, что вызывает появление этих нескольких записей при просмотре моего сайта?

Ответы [ 5 ]

3 голосов
/ 07 ноября 2011

Я сталкивался с этой проблемой несколько раз. Это не ошибка, скорее всего, у вас есть семантические ошибки в elements.xml вашего шаблона списка.

Если определение списка содержит более одного вида по умолчанию, появятся описанные выше симптомы. Проверьте файл elements.xml вашего шаблона списка и убедитесь, что в нем не более одного элемента View.

С уважением Рамон

1 голос
/ 15 марта 2013

Groenewegen находится на.

Я получил два списка объявлений на сайте после того, как запустил Export-SPWeb на дочернем сайте, а затем Import-SPWeb, чтобы переместить его в новое семейство сайтов.

Чтобы исправить это, я создал новое представление по умолчанию для списка «Все элементы списка», выбрал один из двух представлений «Все элементы» и удалил его, и проблема была устранена.

Список объявлений дважды отображался на странице «Просмотреть все содержимое сайта», а данные отображались дважды при просмотре страницы «Все элементы».

Кроме того, промежуточным шагом, который необходимо выполнить перед созданием нового представления по умолчанию, является открытие списка или библиотеки и добавление «? Contents = 1» в URL, чтобы вы могли открыть страницу обслуживания веб-части и «Закрыть «один из дубликатов. Это необходимо сделать, поскольку лента веб-части не будет отображаться на странице объявлений, если существует несколько веб-частей, и вам нужна лента, чтобы открыть раскрывающийся список и создать новое представление.

1 голос
/ 11 апреля 2012

Сегодня я столкнулся с этой проблемой, и после прочтения вышеупомянутых ответов я нашел простое решение. Просто создайте новое представление по умолчанию, и библиотека документов снова будет нормально отображаться.

С уважением,

Тиймен Гроеневеген

P.s

Я «создал» те же две библиотеки, перенеся библиотеку из одного места в другое. На старом месте библиотека была показана только один раз. Если я посмотрю на виды по умолчанию в этой библиотеке, то два вида будут отмечены как Стандартные.

1 голос
/ 16 июня 2009

Я предлагаю вам позвонить в Microsoft, это звучит как ошибка.

P.S. не видя фактического решения, которое создает список, мы не можем определить, что происходит, возможно, функция была активирована дважды ...

0 голосов
/ 16 июня 2009

Вы пробовали с:

list.RootFolder.Name

(который показывает «внутреннее» имя - часть URL)

list.Title показывает отображаемое имя (которое может появляться дважды или более).

Это также может быть объяснением того, почему вы получаете несколько списков. Возможно, вы добавили их с тем же отображаемым именем, но с разными «внутренними» именами?

...