веб-часть sharepoint с caml и xslt - PullRequest
1 голос
/ 17 июня 2009

Как я могу создать веб-часть sharepoint, которая обращается к списку и к которой может быть применен CAML.

CAML необходим для отображения возвращаемых только элементов списка, которые имеют поле с «Position»> 0

Мне также нужно, чтобы веб-часть применила к нему xslt.

Ответы [ 2 ]

3 голосов
/ 17 июня 2009

Вам необходимо добавить веб-часть «Запрос контента» на свою страницу (примечание: требуется MOSS, а не бесплатный WSS). Это позволяет запрашивать данные и применять к ним XSL-преобразование.

Веб-часть позволяет запрашивать определенное семейство сайтов, веб-сайт или список. Затем вы можете установить параметры для возврата данных определенного типа и применять фильтры, сортировку и группировку. Вы также можете выбрать способ отображения данных, которые будут отображаться конечному пользователю в виде раскрывающегося списка параметров. Каждая из этих опций основана на XSL-преобразовании.

Эта запись в блоге Хизер Соломон является одним из лучших ресурсов, которые помогут вам начать создавать собственные преобразования и настраивать CQWP. Также объясняется, как обеспечить передачу всех необходимых полей в XSLT (по умолчанию это происходит только для небольшого подмножества).

Обновление:

Чтобы возвращать элементы списка только в том случае, если поле «Позиция»> 0, проще всего это сделать также в XSLT. Вы, должно быть, добавили поле Position в CommonViewFields, чтобы оно передавалось в XSLT. Затем в вашем собственном стиле элементов (в ItemStyle.xsl, если вы следите за постом Хизер), добавьте следующее:

<xsl:if test="@Position &gt; 0">
  <!-- Display desired row output -->
</xsl:if>

Это неявно игнорируется, когда «Позиция» <= 0. </p>

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

Я согласен с Алексом, что веб-часть "Запрос контента" (CQWP) - это путь, если это возможно.

Однако, если вы хотите войти в код, вы можете сделать что-то вроде следующего. Самое сложное - это вставить его в XML, хотя может быть простой способ перевести его в какую-то нестандартную (хотя и некрасивую) форму XML.

SPList list = web.Lists["My List Name"];
SPView view = list.Views["My View Name"];  // This view would define Postion > 0
SPQuery query = new SPQuery(view);
SPListItemCollection items = list.GetItems(query);

// Iterate through results and generate XML

Если вы не хотите использовать существующее представление, вам нужно будет установить объект SPQuery вручную; устанавливая его ViewFields, Query и RowLimit как минимум. Вы можете использовать CAML Query Tool , чтобы помочь вам в этом.

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