Фильтрация строки запроса представления данных Sharepoint XSL - PullRequest
2 голосов
/ 24 марта 2011

Допустим, у меня есть список, называемый событиями.

Используя SP Designer, я могу добавить веб-часть на страницу, выбрать список событий, и к ним будет добавлена ​​сетка данных со стандартными элементами управления sharepoint и фильтрацией столбцов.страница, похожая на представление «allitems.aspx» любого списка.

Приятная особенность фильтрации столбцов состоит в том, что она использует запросы GET, используя строки запроса, например:

?FilterField1=location&FilterValue1=usa&FilterField2=qtr&FilterValue2=q2

Это позволяет мне создавать URL-адреса и отправлять их людям, показывая им предварительно отфильтрованные данные.Когда нет строк запроса, отображаются все элементы.

Как этого добиться с помощью представлений данных xsl?Фильтрация по ним осуществляется с помощью запросов POST (т. Е. URL-адрес никогда не изменяется и не добавляет строки запроса).Я знаю, что могу настроить параметр строки запроса и затем выполнить фильтрацию по этому параметру, но если строка запроса отсутствует, элементы не отображаются, поскольку она всегда ищет строку запроса для фильтрации.

Есть лилюбой способ заставить представление данных xsl работать в режиме запроса GET?

1 Ответ

3 голосов
/ 24 марта 2011

да, вы можете сделать то, что можете сделать, это добавить условие xslt, если ваши параметры xslt, хранящие значения строки запроса, пусты, то показать все результаты, иначе отфильтровать его на основе параметров xsl для строки запроса

<xsl:choose>
<xsl:when test="$qparam1=''">
<xsl:call-template name="allitem" />
</xsl:when>
<xsl:when test="$qparam1!=''">
<xsl:call-template name="filterdeitem">
<xsl:param filter1 = $qparam1/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
...