Веб-часть "Запрос контента SharePoint" - игнорирование текущего уровня - PullRequest
2 голосов
/ 09 октября 2009

Рассмотрим эту иерархию сайтов SharePoint:

- Site Collection
 - Site1
     - Subsite1
         - AnotherSubsite1
             - Page1
             - Page2
         - AnotherSubsite2
     - Subsite2
         - Page3
         - Page4
 - Site2

Можно предположить, что у каждого сайта в вышеприведенной иерархии есть страница по умолчанию.

Если я размещу CQWP на странице по умолчанию для Site1, могу ли я дать ему указание начать получать данные на уровень ниже того места, где они были размещены? т.е. игнорировать страницу / сайт, на котором он находится в данный момент, чтобы он возвращал:

     - Subsite1
         - AnotherSubsite1
             - Page1
             - Page2
         - AnotherSubsite2
     - Subsite2
         - Page3
         - Page4

Спасибо

1 Ответ

3 голосов
/ 09 октября 2009

Я бы расширил CQWP, а затем подключил свой собственный ProcessDataDelegate, чтобы удалить ненужные данные. Например:

protected override void OnInit(EventArgs e)
{
    this.ProcessDataDelegate += ProcessItems;
}

public DataTable ProcessItems(DataTable data)
{
    // Query the DataTable and remove unnecessary information
}

Столбец WebId в data - это GUID для объекта SPWeb каждого возвращаемого элемента. Найдите SPWeb.ID сайтов, которые вам больше не нужны, и удалите эти строки. Обратите внимание, что GUID в столбце WebId указан в верхнем регистре и в формате «D», как описано в Guid.ToString () .

Не забудьте использовать AcceptChanges() в конце, чтобы обеспечить обновление DataTable.

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