Я делаю много XSLT и jQuery и думал, я хотел бы поделиться несколько фрагментов, которые другие могут оказаться полезными в будущем.
Пример 1: Выделяют простого JavaScript / jQuery в XSLT:
<XSL:шаблон матч = "что-то" XML:пространства = «preserve»>
<!– Пустой из дружественных фильтры скрытое поле запроса –>
<сценарий type = «текст/javascript»>
$(документ).готов(функция(){
$("#QueryFriendlyFilters").вал(«пустой»);
});
</сценарий></XSL:шаблон>
Что немного выделяет некоторые JavaScript, который ждет страницы для завершения загрузки (из-за $(документ).готов(…)) и затем задает значение скрытого поля QueryFriendlyFilters литеральное значение «пусто».
Пример 2: Использование <XSL:Если> проверить «больше чем», «меньше чем», и т.д..
<XSL:шаблон матч = "что-то" XML:пространства = «preserve»>
<div id = «fdcAllFilters»>
<XSL:Если test="@Count>0">
<span class = «fdcFilterLabel»>Текущих фильтров:</диапазон>
</XSL:Если><!– больше материала происходит здесь. –>
</XSL:шаблон>
Выше фрагмент проверяет, является ли атрибут с именем «Подсчитать» элемента «что-то» больше нуля. XML за это будет что-то вроде:”
<что-то Count = «5» />
Пример 3: Итерацию всех элементов, Interspersing jQuery звонков.
<!– Прохода через все фильтры и отображает правильный ссылки. –>
<XSL:для каждого select = «UserFilter»><класс = "FilterHref" href = "javascript:mySubmitPage(«RemoveUserFilter»,'{@ ID}’)">[X]</в>
<span class = «fdcFilterLabel»><XSL:Стоимость от select="@FilterValue"/></диапазон>
<сценарий type = «текст/javascript»>$(документ).готов(функция(){
<XSL:текст><![CDATA[$("#QueryFriendlyFilters").вал( ($("#QueryFriendlyFilters").вал() + " ]]></XSL:текст>\"<XSL:Стоимость от select="@FilterValue"/>\"<XSL:текст><![CDATA["));]]></XSL:текст>
});</сценарий>
</XSL:для каждого>
Выше фрагмент является наиболее сложным и может быть более простые способы это сделать.
XML за этим выглядит примерно следующим образом:
<UserFilter ID = «123» FilterValue = «xyzzy» />
Этот фрагмент итерации <UserFilter> узлы.
Сначала он испускает якоря тегом, при щелчке вызывает функцию JavaScript, которая уже находится на странице, «mySubmitPage» и передает значение атрибута <UserFilter> узел с именем «ID».
Он затем передает некоторые jQuery, который ожидает загрузки страницы. Это jQuery обновляет скрытое поле с именем «QueryFriendlyFilters», добавив значение атрибута FilterValue. Примечание все сумасшедшие <XSL:текст> и <![CDATA[ … ]]> прочее.
Вот это, надеюсь, это поможет!
</конец>
Следуй за мной по щебетать на http://www.twitter.com/pagalvin
Можно ли использовать этот подход для фильтрации несколько webparts списка в SharePoint через XSLT?
Привет, к сожалению я никогда не ответил на это. Это древние на данный момент, и поэтому я не буду пытаться. Я надеюсь, вы поняли, что вы пытались сделать :).