катэгорыя Архівы: XSLT

XSLT і JQuery узораў

Я раблю шмат з XSLT і JQuery і думаў, што я падзялю некалькі фрагментаў, што, могуць апынуцца карыснымі ў будучыні.

Прыклад 1: Emit простыя JavaScript / JQuery ў XSLT:

<XSL:template match="something" XML:space="preserve">

  <!– Свабодны выхад запыту дружалюбны фільтры схаванае поле –>
  <Сцэнар тып = "тэкст / JavaScript">
    $(дакумент).гатовы(функцыя(){
      $("#QueryFriendlyFilters").Вал("empty");
    });
  </сцэнар>

</XSL:шаблон>

Гэта крыху выпраменьвае некаторы JavaScript, што чакае старонку для завяршэння загрузкі (з-за $(дакумент).гатовы(...)) , А затым ўсталёўвае значэнне схаванага поля з імем QueryFriendlyFilters літаральнага значэння "пустая".

Прыклад 2: Выкарыстоўваць <XSL:калі> праверыць "больш чым",  «Менш», і г.д..

<XSL:template match="something" XML:space="preserve">

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">Бягучыя фільтры:</пралёт>
    </XSL:калі>

    <!– больш матэрыялу тут адбываецца. –>

</XSL:шаблон>

Прыведзены вышэй фрагмент правярае, ці ёсць атрыбут "Колькасць" "нешта" элемент больш за нуль.  XML за гэтым будзе нешта накшталт:"

<нешта Count = "5" />

Прыклад 3: Перабору ўсіх элементаў, перамяжоўваючы JQuery званкі.

<!– Ітэрацыя праз усе фільтры і адлюстроўваць правільную  сувязі. –>
<XSL:for-each select="UserFilter">

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

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></пралёт>

  <Сцэнар тып = "тэкст / JavaScript">

    $(дакумент).гатовы(функцыя(){
        <XSL:тэкст><![CDATA[$("#QueryFriendlyFilters").Вал( ($("#QueryFriendlyFilters").Вал() + " ]]></XSL:тэкст>\"<XSL:value-of select="@FilterValue"/>\"<XSL:тэкст><![CDATA["));]]></XSL:тэкст>
    });

  </сцэнар>

</XSL:для кожнага,>

Прыведзены вышэй фрагмент з'яўляецца самым складаным і можа быць больш просты спосаб зрабіць гэта.

XML за гэта выглядае прыкладна так:

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

Гэты сниппет ітэрацыі <Фільтр карыстальнікаў> вузлоў. 

Гэта першы выпраменьвае тэга прывязкі, пры націску выклікаецца функцыя JavaScript, якая ўжо на старонцы, "MySubmitPage» і перадае значэнне атрыбуту <Фільтр карыстальнікаў> вузел з імем "ID". 

Затым ён пускае некаторыя JQuery што чакае загрузкі старонкі.  Гэта JQUERY абнаўлення схаванае поле пад назвай "QueryFriendlyFilters" шляхам дадання значэнні FilterValue атрыбуту.  Звярніце ўвагу, усе вар'яты <XSL:тэкст> і <![CDATA[ ... ]]> матэрыял.

Вось менавіта, спадзяюся, гэта дапаможа!

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Бясконцая ўкладзенасць <спраў> Тэгі і JQuery

Гэта падобна на такія дзіўныя тэмы, Я не ўпэўнены, што гэта сапраўды варта блог аб, але гэта ніколі не спынілі мяне раней, так што тут мы ідзем ўсмешка

Я працую на праект, дзе я пацягнуўшы некаторыя дадзеныя з пошуку, упакоўкі яго ў XML-паведамленні, а затым, што XML, у канчатковым рахунку ператвараецца ў HTML з дапамогай XSLT.  Там вельмі шмат JQuery ўдзел, 1 біт, які рэалізуе некаторыя функцыянальныя клавішы табуляцыі.  Пры націску на ўкладцы (на самай справе, a <спраў>), JQuery выклікае. Хаваць() а. шоў() на розных дзівы (першапачатковай загрузкі старонкі загружае усё змесціва таму няма зваротнай перадачы ў гэтым выпадку).

Куча гадзін таму, На ўкладцы пераключэння логікі пачаў працаваць нестабільна і не паказаў бы адзін з маіх закладак.  Я ў канчатковым рахунку, адсочвалі яго да таго, што Internet Explorer (па меншай меры) лічылася, што <спраў> тэгі укладзеныя далёка, значна глыбей, чым intended.The панэлі інструментаў распрацоўніка пакажа:

-<DIV ID = "Tab1Content">
  -<спраў>
    -<спраў>
      -<DIV ID = "Tab2Content">
        -<спраў>
           ..............................
                   </спраў>  <-Нарэшце, паказваць яго зачынілі ўсе шляхі сюды!

Так, калі б я зрабіў $("# Tab1Content").хаваць(), Я таксама схаваць Таб2, і я ніколі не мог паказаць Таб2, калі я не паказваюць таксама Таб1.  Я скапіяваць і ўставіць код на ў Visual Studio, і яна паказала ўсё падшэўка спраў у прыгожа, гэтак жа, як яны павінны рабіць, у такім выглядзе:

-<DIV ID = "Tab1Content">
  +<спраў>
  +<спраў>
-<DIV ID = "Tab2Content">
  +<спраў>
  +<спраў>

Я біцца галавой аб сцяну на працягу некаторага часу і заўважылі, што ў самім кодзе HTML быў выклікаюць шмат пустых <спраў> тэгі, накшталт:

<цела>

  <DIV ID = "Tab1Content">

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

  </спраў>

  <DIV ID = "Tab2Content">

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

  </спраў>

</цела>

(Вышэй waaaaaaaaaaaay больш спрошчаны.  Пустыя тэгі DIV, цалкам сапраўдныя. Некаторыя з маіх <спраў> тэгі былі поўныя зместу, але многія больш не было.  Я прыйшоў да ўсведамлення таго, што мая <XSL:для кожнага,> дырэктывы выпраменьваючых кароткая форма тэгі DIV, калі XSL:для кожнага, не "знайсці ніякіх дадзеных.  Я вымушаны HTML каментар у выхадны, як паказана на малюнку:

image

 

Пасля таго як я зрабіў гэта, ўсіх спраў ён выбудаваны прыгожа і мой рахунак пераключэння пачаў працаваць.

Як заўсёды, Спадзяюся, гэта дапаможа камусьці ў цяжкую хвіліну.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Прыклад: XSLT Creating HTML Href аўтара

Я раблю мала матэрыялу XSL ў апошні час і думаў, што я сабраў ўзоры для маёй будучыні, і гэта можа быць карысным для ўсіх нас XSLT-ERS зарабляць на жыццё ў Інтэрнэце.

Разгледзім наступны XML:

<FdcSearchTabsCollection Count="2">
  <SearchTab Label="Industry" SortOrder=”00” Label=”Industries” SearchConstraints="contenttype:Прамысловасць" TabID="831b2a74-98c4-4453-8061-86e2fdb22c63"/>
  <SearchTab Label="Practices" SortOrder=”01” Label=”Practices” SearchConstraints="contenttype:PracticeGroups" TabID="678e206b-6996-421f-9765-b0558fe1a9c0"/>
</FdcSearchTabsCollection>

Наступны фрагмент XSL выводзіць спарадкаваны спіс ўкладак HREFs:

<XSL:template match="FdcSearchTabsCollection" XML:space="preserve">
   
    <!– The "all" таб –>
    <a href="javascript:ПросмотрВкладка(‘All’)">Прагледзець усе</a>
   
    <!– Кожная асобная ўкладка –>
    <!– Перабор Ўкладкі і правільнага адлюстравання  сувязі. –>
    <XSL:for-each select="SearchTab">
      <XSL:sort select="@SortOrder"/>

      …
      <a href="javascript:ПросмотрВкладка("{@ Табетический}')"><XSL:value-of select="@Label"/></a>
    </XSL:для кожнага,>

    <BR /> 
   

   </XSL:шаблон>

Вось як гэта выглядае ў SharePoint:

SNAGHTML78aa2cb

 

 

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin