Веб-часть "Запрос контента" и удаленные события - PullRequest
1 голос
/ 19 декабря 2009

У меня есть веб-часть с запросом контента, показывающая 3 события на сегодняшнюю дату на нашей домашней странице в Интранете. Однако, когда пользователь удаляет событие из повторяющейся серии, SP изменяет заголовок этого события на «Удалено: [исходное название]». Моя веб-часть с запросами на контент по-прежнему показывает их, и я не вижу способа их отфильтровать.

Для моего списка просмотра я обхожу его с полем и формулой в этом поле следующего. = IF (ISNUMBER (FIND ( "Удалено", название)), "Да", "Нет")
. Однако это поле недоступно для меня в раскрывающемся списке фильтра CQWP.

как предотвратить отображение этих удаленных вхождений в CQWP?

ОБНОВЛЕНИЕ: Кстати, это страница публикации.

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Хотя вы можете выполнить фильтрацию через XSLT, может быть предпочтительнее сделать это в самом запросе CAML. В этой статье Microsoft, Как: настроить веб-часть запроса контента с помощью пользовательских свойств , показано, как строится предложение CAML Where (и может быть изменено). Удачи!

1 голос
/ 20 декабря 2009

Вы пробовали использовать DataFormWebPart (DFWP) раньше? Это в основном самый простой из веб-частей с привязкой к данным, но, как ни странно, самый настраиваемый.

Чтобы попробовать, откройте дизайнер SharePoint и создайте фиктивную страницу aspx, с которой можно поиграть / поиграть. Затем откройте панель источников данных и найдите список, который вы хотите использовать. затем нажмите на этот список и выберите «просмотреть данные». Перетащите соответствующие поля на страницу aspx. Теперь у вас есть (очень) базовая сетка, отображающая ваши данные.

Крутая вещь, хотя, все макеты управляются xsl, так что полностью настраиваемые. Вы даже можете сделать xsl повторно используемым, переключившись в режим просмотра исходного кода, вырезать и вставить xs, l в отдельный файл xsl. Чтобы затем использовать этот файл вместо встроенного xsl, после перемещения встроенного xsl измените свойство DFSWP xsl (содержащее встроенный xsl) с

<xsl><!-- .... this is where the moved inline xsl used to be... --></xsl>

до

<xsllink>/server relative url to xsl file</xsllink>

Единственная оставшаяся проблема заключается в том, что источник данных DFWP теперь связан одним списком. Чтобы выполнить сворачивание семейства сайтов (например, если вы хотите включить несколько списков событий, которые вы хотите включить), вам нужно изменить запрос выбора SPDataSource в DFWP и режим источника данных. Как это сделать, объяснено здесь .

Теперь обратимся к вашему актуальному вопросу: (после моего откровенного плагина недооцененного DFWP :-D) SPDataSource DFWP в основном использует SPQuery или SPSiteDataQuery (в зависимости от режима источника данных) для получения данных , и вы можете сделать гораздо более мудрым фильтром. Либо в самом запросе CAML, либо просто отфильтруйте ненужные строки, используя что-то вроде следующего:

<xsl:if test="not(contains(@Title, 'Deleted:'))">
  <xsl:apply-templates />
</xsl:if>
...