Tag Archives: JQuery

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

Lists.asmx, GetListItems і тэчак

Я рабіў некаторыя даследаванні для каго-то сёння каля службу list.asmx вэб падаюцца як частка SharePoint 2010 (і больш раннія версіі).  Яна была ў стане атрымаць спіс элементаў у каранёвай тэчцы (у тым ліку імёны подпапок), але не мог атрымаць дэталі ў падтэчку.  Я зрабіў некаторыя азіраючыся на інтэрнэт, і гэта дзіўна агульны пытанне.  Яшчэ, Я не мог атрымаць добры адказ на простае пытанне, "Калі я ведаю, што папка, як я магу атрымаць элементы ў тэчцы?"  Каб быць сумленным, Я не спрабаваў ўсё, што цяжка, так як я хацеў высветліць гэта самастойна на некаторы час ўсмешка.

Каб рэалізаваць гэтую магчымасць, Я стварыў сайт пад назвай "Блогі Сцэнарыі» і карыстальніцкі спіс пад назвай "Асаблівы спіс з ўкладзеных тэчак".  Затым я стварыў тэчкі з назвамі:

  • Год 2005
  • Год 2006
  • Год 2007

Я дадаў некалькі пунктаў у тэчку «Год 2006».  Гэта, як ён выглядае:

image

Мой сябар не піша кода C #, а з дапамогай Java, так SOAP канверце было тое, што яна сапраўды неабходная.  Для атрымання гэтага, Я напісаў трохі JQuery і затым выкарыстаў скрыпача, каб атрымаць фактычнае размове HTTP.

Вось адпаведны JQuery (Я скапіяваў код унізе, калі вы хочаце скапіяваць / ўставіць):

image

Яны першы ключ павінен ўключаць <queryOptions> і <QueryOptions> вузла.  Другі ключ з'яўляецца тое, што <Папка> вузел з'яўляецца URL, да якіх кліент мае доступ.

Там могуць быць і іншыя спосабы, каб атрымаць гэтую, але гэта працуе добра для мяне пры выкарыстанні JQuery.

Вось SOAP канверт для дадзеных:

<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’>                
  <soapenv:Цела>
    <GetListItems XMLNS =’
HTTP://schemas.microsoft.com / SharePoint / мыла /’>
      <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны>
      <ViewFields>  
        <ViewFields>
          <FieldRef NAME = 'Назва’ />
          <FieldRef NAME = 'EncodedAbsUrl’ />
        </ViewFields>
      </ViewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Цела>
</soapenv:Канверт>

Шмат прыкладаў і абмеркавання вакол гэтага прывяло мяне да думкі, што ўсё што мне трэба было <QueryOptions> і пакажыце імя тэчкі.  Для мяне, Мне трэба як апрацоўваць яго ў <queryOptions> а таксама пазначыць поўнае URL для <Папка> вузел.

Вось JQuery AJAX ўстаноўкі:

$(дакумент).гатовы(функцыя() {
       быў soapEnv =
           "<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’> \
               <soapenv:Цела> \
                    <GetListItems XMLNS =’HTTP://schemas.microsoft.com / SharePoint / мыла /’> \
                       <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны> \
                       <ViewFields> \
                           <ViewFields> \
                              <FieldRef NAME = 'Назва’ /> \
                              <FieldRef NAME = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </ViewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Цела> \
           </soapenv:Канверт>";

</канец>

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

Выконвайце за мной на 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

Тым не менш, больш JQuery–Змена памераў выявы Прыклад

Я атрымаў у спадчыну вэб-частку ад старога пастаўшчыка кліента і мае праблема памеру малюнка.  Фотаздымкі павінны быць 60×50 але па нейкай прычыне, арыгінальны пастаўшчык змушаны іх на 42×42, так што яны выглядаюць раздушаны:

 

Добра малюнка

Bad Image

Вось разметкі (некалькі спрошчаны):

<клас табліцы = 'пашыранай перспектывы ">
  <THEAD>
    <тр>
      <м  шырыня = '100′>3 Аўторак</м>
    </тр>
  </THEAD>

  <TBODY>
    <тр клас = 'прагноз'>
      <TD шырыня = '100′>
        <Вуліца>
          <Ці клас = 'высокі'>Высокі: 72&Вы;F</Li>
          <Ці клас = "нізкі">Нізкі: 44&Вы;F</Li>
          <Ці клас = 'стан'>Сонечны
            <IMG SRC =’
HTTP://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ шырыня = '42’ Вышыня = '42’ Alt =” />
          </Li>
        </Вуліца>
      </TD>
    </тр>

  </TBODY>

</стол>

Звярніце ўвагу, што хоць Шлях да самога малюнку паказвае правільны памер (60×50) першапачатковым прадаўцом прымусілі яго ў 42×42.  Чаму?  Вар'ят.

У любым выпадку, Я хацеў хуткае і лёгкае рашэнне гэтай праблемы, і я звярнуўся да JQuery.  Трук быў, каб знайсці ўсе патрэбныя <IMG> тэгаў.  Я не хачу, каб бадзяцца з любым іншым IMG тэгі (якіх шмат).  Гэта трохі JQuery зрабіў сваю справу:

<script type="text/javascript" SRC ="HTTP://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></сцэнар>

<Сцэнар тып = "тэкст / JavaScript">
     $(дакумент).гатовы(функцыя () {

         $(‘li.condition > IMG ").кожны(функцыя (індэкс, пункт)
           
{
             $(пункт).CSS("width", "60"); 
             $(пункт).CSS("height", "50");
            });
     }); // дакумента нагрузкі
</сцэнар>

Вось кавалак кода знаходзіцца калекцыя <Li> тэгі, клас "стан" і <IMG> дзяцей.  Затым ён праходзіць праз усё гэта.  Працаваў як шарм.

Я мог бы ўпарадкаваць яе, Але я ніколі не быў такі хлопец, UNIX, што вырашыць π да 18 лічбы дакладнасцю, выкарыстоўваючы СЭД і AWK, і я не такі, калі хлопец або JQuery ўсмешка.

</канец>

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

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

Ўзяць пад кантроль ваш кнопкі ОК і Адмена

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

image

У гэтым артыкуле апісваецца, як прымусіць NewForm.aspx для перанакіравання на адну старонку, калі карыстальнік націскае кнопку ОК на іншую старонку, калі яна націсне кнопку Адмена.

</канец>

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

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

Quick Tip: Даданне JQuery для MOSS Выдавецкі старонкі

Пры павышэнні MOSS publising старонкі з дапамогай jQuery, Я трапіў у наступны ўдар хуткасці:

Server Error in ‘/’ Ужыванне.


Пра памылку сінтаксічнага аналізатара

Апісанне: Памылка пры разборы рэсурсу, патрабаванага для абслугоўвання гэтага запыту. Калі ласка, праглядзіце наступныя канкрэтныя звесткі пра памылку разбору і зменіце зыходны файл.

Паведамленне пра памылку сінтаксічнага аналізатара: Толькі элементы кіравання змесцівам дазваляецца непасрэдна ў змест старонкі, якая змяшчае Элементы кіравання.

Памылка Крыніца:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

Зыходны файл: /_catalogs / MasterPage / KCC_FacultyMember.aspx    Лінія: 12


Звесткі аб версіі: Microsoft. NET Framework версіі:2.0.50727.4927; ASP.NET Version:2.0.50727.4927

Гэта было досыць лёгка выправіць (г / т да майго калегу, Удай Ethirajulu).  Будзьце ўпэўненыя, што JQuery код жыве ўнутры "PlaceHolderAdditionalPageHead", як паказана:

<аспід:Змесціва ContentPlaceHolderID = "PlaceHolderAdditionalPageHead" Runat = "Сервер">

<сцэнар

    тып = "тэкст / JavaScript"

    SRC = "/ jQuery/jquery-1.4.min.js">

</сцэнар>

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

  $(дакумент).гатовы(функцыя() {

   // Бліскучы матэрыял JQuery тут ідзе.

   });

</сцэнар>

</канец>

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

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