CQWP - Как заставить CommonViewFields отображать все поля
Я использую CQWP(веб-часть запроса контента), которая извлекает список календаря, и я хочу отфильтровать свой результат (customqueryoverride - usign CAML). Однако некоторые поля из списка календаря скрыты от меня.
Я хочу знать все поля в моем списке календаря.
Решение, которое я придумал, состояло в том, чтобы использовать XSL для преобразования идентификаторов, чтобы отобразить все мои свойства и их значения, и добавить все поля в свойство CommonViewFields.
<property name="CommonViewFields" type="string">
EventDate,DateTime;EndDate,DateTime;fRecurrence,Boolean
</property>
У меня проблема в том, что я не знаю имени поля... Какой-нибудь подстановочный знак, который я мог бы использовать?(%%%
а также ***
не работает) Любой другой способ получить все имена полей будет работать тоже.
Примечание: это понимать и играть с повторяющимися событиями.
3 ответа
Чтобы напечатать все доступные имена полей в CQWP, можно использовать следующий XSLT:
<xsl:for-each select="@*">
Field Name :<xsl:value-of select="name()" />
</xsl:for-each>
Он должен быть помещен в ItemStyle.xsl внутри шаблона, который используется для визуализации элемента.
Используйте инструмент SharePoint 2010 Manager (http://spm.codeplex.com/). Он дает вам множество деталей о вашей платформе SharePoint на всех уровнях, вплоть до полей в списке. Он предоставит вам все детали поля, включая внутреннее имя, которое вам нужно использовать для CommonViewFields.
Используйте тег для этого, прокомментируйте основной шаблон в основном XSL и добавьте это как шаблон match="/":
<xsl:template match="/ ">
<textarea cols="50" rows="15" dir="ltr">
<xmp><xsl:copy-of select="*"/></xmp>
</textarea>
Теперь CQWP будет отображать полный ответ XML-запрос