Kategoria: Archiwum: XSLT

XSLT i jQuery próbek

I działalność dużo XSLT i jQuery i myśli, że udział miałyby kilka Urywki, które inni mogą być przydatne w przyszłości.

Przykład 1: Emituje proste JavaScript / jQuery w XSLT:

<XSL:szablon dopasowanie = "coś" XML:przestrzeń = "zachowanie">

  <!– Puste określone pole ukryte filtry przyjazne kwerendy –>
  <skrypt typu = "text/javascript">
    $(dokument).gotowe(Funkcja(){
      $("#QueryFriendlyFilters").Val("puste");
    });
  </skrypt>

</XSL:szablon>

Ten bit emituje niektóre JavaScript, który czeka na stronie do zakończenia załadunku (z powodu $(dokument).gotowe(…)) i następnie ustawia wartość pola ukrytego nazwane QueryFriendlyFilters na wartość literału "pusty".

Przykład 2: Wykorzystanie <XSL:Jeśli> Aby sprawdzić "większe niż",  "mniejszy niż", itp.

<XSL:szablon dopasowanie = "coś" XML:przestrzeń = "zachowanie">

  <DIV id = "fdcAllFilters">
 
    <XSL:Jeśli test="@Count>0">
      <zakres klasy = "fdcFilterLabel">Bieżące filtry:</zakres>
    </XSL:Jeśli>

    <!– więcej rzeczy dzieje się tutaj. –>

</XSL:szablon>

Powyższego urywka sprawdza, czy atrybut o nazwie "Count" elementu „coś"jest większa od zera.  XML tego byłoby podobne:”

<coś Count = "5" />

Przykład 3: Iterację wszystkich elementów, przeplatać jQuery wywołań.

<!– Iterację wszystkich filtrów i wyświetlić prawidłowe  łącza. –>
<XSL:dla każdej = wybierz "UserFilter">

  <Klasa = "FilterHref" href = "javascript:mySubmitPage("RemoveUserFilter",'{@ ID}’)">[X]</a>

  <zakres klasy = "fdcFilterLabel"><XSL:wartość z select="@FilterValue"/></zakres>

  <skrypt typu = "text/javascript">

    $(dokument).gotowe(Funkcja(){
        <XSL:tekst><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:tekst>\"<XSL:wartość z select="@FilterValue"/>\"<XSL:tekst><![CDATA["));]]></XSL:tekst>
    });

  </skrypt>

</XSL:dla każdego>

Powyższe urywek jest najbardziej złożonych i może być łatwiejsze sposoby to zrobić.

XML za to wygląda mniej więcej tak:

<UserFilter ID = "123" FilterValue = "xyzzy" />

Poniższy urywek kodu jest iteracja <UserFilter> węzły. 

Pierwsza emituje kotwicy znacznika, który po kliknięciu wywołuje funkcję JavaScript, który już znajduje się na stronie, "mySubmitPage" i przekazuje wartość atrybutu na <UserFilter> węzeł o nazwie "ID". 

Następnie emituje niektóre jQuery, że czeka na stronę, aby załadować.  Że jQuery aktualizacje ukryte pole o nazwie "QueryFriendlyFilters" przez dodanie wartości atrybutu FilterValue.  Uwaga Wszystkie crazy <XSL:tekst> i <![CDATA[ … ]]> Stuff.

To wszystko, Mamy nadzieję, że pomaga!

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Nieskończoność zagnieżdżanie <DIV> Znaczniki i jQuery

To wydaje się podobnie jak takich tematów oddball, Nie jestem pewien, że jest naprawdę warto blogi o, ale która nigdy nie została zatrzymana mnie przed, tak here we go Uśmiech

Pracuję w projekcie, gdzie I 'm ciągnięcie niektórych danych z wyszukiwania, Zapakowanie do wiadomości XML, a następnie ten XML jest ostatecznie przekształcone w HTML za pomocą XSLT.  Zaangażowanych jest dużo jQuery, jeden bit który implementuje niektóre funkcje przełączania zakładek.  Po kliknięciu na karcie (naprawdę, a <DIV>), jQuery wywołuje .hide() i .show() na różne bloki DIV (ładowania strony początkowej pobrań całej zawartości, więc nie są w tym przypadku nie postbacks).

Pęczek hours ago, kartę przełączania logiki zaczęła się nieregularne i go nie wykazują jedną z moich kart.  I ostatecznie śledzone go do faktu tego programu internet explorer (co najmniej) uważali, że <DIV> znaczniki zagnieżdżone daleko, znacznie głębiej niż zamierzone.Dowodzą Wikimedia :

-<DIV id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<DIV id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— Wreszcie wykazujące została zamknięta aż tu!

Tak, Jeśli robiłam $("# Tab1Content").Ukryj(), Byłoby także ukryć Tab2 i może nigdy nie pokazać Tab2 jeśli nie też wyświetlić Tab1.  Skopiowany i wklejony kod do programu visual studio i wykazało wszystkie div. hamulcowej w górę estetycznie, tak, jak zostały dopełnione robi, Szukasz like this:

-<DIV id = "Tab1Content">
  +<DIV>
  +<DIV>
-<DIV id = "Tab2Content">
  +<DIV>
  +<DIV>

Beat my head against the wall chwilΩ i zauważył, że rzeczywista HTML kod został wytwarzających nadmiernych pusty <DIV> znaczniki, Podobnie jak:

<organ>

  <DIV id = "Tab1Content">

    <DIV id = "row1" />
    <DIV id = "row2" />

  </DIV>

  <DIV id = "Tab2Content">

    <DIV id = "row1" />
    <DIV id = "row2" />

  </DIV>

</organ>

(Powyższe jest waaaaaaaaaaaay bardzo uproszczona.  Znaczniki div puste są całkowicie prawidłowe. Niektóre z moich <DIV> znaczniki były pełnej zawartości, jednak wiele więcej nie były.  Ja przyszedłem do realizacji, Moje <XSL:dla każdego> dyrektyw były emitujących formularzu krótkie znaczniki div, kiedy xsl:dla każdej nieoczekiwane "znaleźć żadnych danych.  Komentarz HTML I zmuszony do produkcji, jak pokazano:

image

 

Po I nie, wszystkie div wyrównana estetycznie i moją kartę przełączania rozpoczął.

Jak zawsze, Mam nadzieję, że dzięki temu kogoś w pinch.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Przykład: XSLT tworzenie HTML Href

I już zostały ostatnio ten bit XSL rzeczy i uważa się, że byłoby układam razem próbkę w moim przyszłości i że może być wartości dla wszystkich nas XSLT-ers dokonywania życia w internets.

Należy wziąć pod uwagę następujące XML:

<FdcSearchTabsCollection Count = "2">
  <Etykieta SearchTab = "przemysł" SortOrder = "00" Label = "Przemysł" SearchConstraints = "contenttype:Przemysł" TabID = "831b2a74-98c4-4453-8061-86e2fdb22c63" />
  <Etykieta SearchTab = "praktyk" SortOrder = "01" Label = "Praktyki" SearchConstraints = "contenttype:PracticeGroups" TabID = "678e206b-6996-421f-9765-b0558fe1a9c0" />
</FdcSearchTabsCollection>

Poniższy urywek kodu XSL wygeneruje posortowanej listy odwołania HREF kart:

<XSL:szablon dopasowanie = "FdcSearchTabsCollection" XML:przestrzeń = "zachowanie">
   
    <!– Wszystkie"" Karta –>
    <href = "javascript:ViewTab('Wszystkie')">Wyświetlanie wszystkich</a>
   
    <!– Każda indywidualna karta –>
    <!– Iterację wszystkich kart i wyświetlić prawidłowe  łącza. –>
    <XSL:dla każdej = wybierz "SearchTab">
      <XSL:Sortowanie select="@SortOrder"/>

      …
      <href = "javascript:ViewTab(‘{@ TabID}’)"><XSL:wartość z select="@Label"/></a>
    </XSL:dla każdego>

    <BR /> 
   

   </XSL:szablon>

Oto co wygląda jak w programie SharePoint:

SNAGHTML78aa2cb

 

 

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin