Tag Archives: jQuery

XSLT и jQuery проби

Аз са били правиш много XSLT и jQuery и мисленето, аз ще сподели няколко откъси, които други може да намерите за полезни в бъдеще.

Пример 1: Излъчват прости JavaScript / jQuery в XSLT:

<XSL:шаблон за съвпадение = "нещо" XML:космически = "запазите">

  <!– "Празно" е приятелски заявката филтрира скрито поле –>
  <скриптови тип = "текст/javascript">
    $(документ).готов(функция(){
      $("#QueryFriendlyFilters").вал("празно");
    });
  </скрипт>

</XSL:шаблон>

Този бит излъчва някои JavaScript, която изчаква на страницата, за да завърши зареждането (поради $(документ).готов(…)) и след това определя стойността на скрито поле QueryFriendlyFilters на литерален стойност "празно".

Пример 2: Употреба <XSL:Ако> за да проверите "по-голямо от",  "по-малко от", н.

<XSL:шаблон за съвпадение = "нещо" XML:космически = "запазите">

  <DIV ИД = "fdcAllFilters">
 
    <XSL:Ако test="@Count>0">
      <еталониране на клас = "fdcFilterLabel">Текущ филтри:</еталониране>
    </XSL:Ако>

    <!– повече неща се случва тук. –>

</XSL:шаблон>

Горните парченце проверява дали атрибут с име "Преброяване" на "нещо" на елемент е по-голямо от нула.  XML зад това би било нещо подобно:”

<нещо брой = "5" />

Пример 3: Обхождане на всички елементи, interspersing jQuery повиквания.

<!– Обхождане на всички филтри и да покаже правилното  връзки. –>
<XSL:за всеки избор = "UserFilter">

  <клас = "FilterHref" href = "javascript:mySubmitPage("RemoveUserFilter",'{@ ИД}’)">[X]</а>

  <еталониране на клас = "fdcFilterLabel"><XSL:стойността на select="@FilterValue"/></еталониране>

  <скриптови тип = "текст/javascript">

    $(документ).готов(функция(){
        <XSL:текст><![НЕЗАТВОРЕН[$("#QueryFriendlyFilters").вал( ($("#QueryFriendlyFilters").вал() + " ]]></XSL:текст>\"<XSL:стойността на select="@FilterValue"/>\"<XSL:текст><![НЕЗАТВОРЕН["));]]></XSL:текст>
    });

  </скрипт>

</XSL:за всеки>

Горните фрагмент е и най-сложните и може да има по-лесни начина да го направите.

XML зад това изглежда приблизително по следния начин:

<UserFilter ИД = "123" FilterValue = "xyzzy" />

Това парченце е iterating чрез <UserFilter> възли. 

Тя първо да излъчва котва, етикет, когато се натисне предизвика на JavaScript функция, която вече е на страницата, "mySubmitPage" и минава на стойността на даден атрибут на <UserFilter> възел, наречена "ИД". 

След това тя да излъчва някои jQuery, която изчаква на страницата, за да се зареди.  Този jQuery актуализира скрито поле с име "QueryFriendlyFilters" чрез добавяне на стойността на атрибута FilterValue.  Забележка всички луди <XSL:текст> и <![НЕЗАТВОРЕН[ … ]]> неща.

Това е, надежда, той помага!

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Lists.asmx, GetListItems и папки

Аз правя няколко изследвания на някой днес около list.asmx уеб услуга, предоставени като част от SharePoint 2010 (и по-рано).  Тя е в състояние да получи елементите от списъка в главната папка (включително имената на подпапките), но не можа да се получи елементите в подпапките.  Направих някои поглед по internets и това е изненадващо общ въпрос.  Още, Не мога да получа добра отговорът на прост въпрос, "Ако знам, че папката, Как да получа елементите в папката?”  За да бъда честен, Аз не опитайте всички усърдно, тъй като съм исках да фигура, тази комбинация, на моята собствена за известно време Усмивка.

За да зададете това като настройка, Създадох даден сайт, наречена "Сценарии за Blogging" и списък по избор, наречена "Потребителски списък с последващо папки".  След това създадох папки, наречени:

  • Година 2005
  • Година 2006
  • Година 2007

Добавих няколко елементи в папката "2006 година".  Ето как изглежда той:

image

Моят приятел не писане C# код а по-скоро използване на Java, така че САПУН плика е това, което тя наистина необходимо.  За да получите, I пише малко jQuery и използва fiddler, за да получите действителната HTTP разговор.

Ето съответните jQuery (Аз копиран кода под ако искате да копирате/поставяте):

image

Те първият ключ е да включат и двете <queryOptions> и <QueryOptions> възел.  Вторият ключ е, че <Папка> възел е URL АДРЕС, към която клиентът има достъп.

Може да има други начини да получите това, но това работи добре за мен, когато се използва jQuery.

Тук е SOAP пакет за горните:

<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Тяло>
    <GetListItems xmlns =’
HTTP://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Списък по избор с последващо папки</listName>
      <viewFields>  
        <ViewFields>
          <Име на FieldRef =' заглавие’ />
          <Име на FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Списък на сценарии/списъци/по избор с последващо папки/година 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тяло>
</soapenv:Плик>

Много примери и дискусия около това довело ми да се смята, че всичко трябва да е <QueryOptions> и задайте име на папка.  За мен, Аз трябва да и го поставете между вътре <queryOptions> както и да укажете напълно квалифицирани URL АДРЕС за <Папка> възел.

Тук е настройка на jQuery AJAX:

$(документ).готов(функция() {
       var soapEnv =
           "<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Тяло> \
                    <GetListItems xmlns =’HTTP://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Списък по избор с последващо папки</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Име на FieldRef =' заглавие’ /> \
                              <Име на FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Списък на сценарии/списъци/по избор с последващо папки/година 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Тяло> \
           </soapenv:Плик>";

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Безкрайно вложени SEARCH <DIV> Етикети и jQuery

Това изглежда като такава Одбол тема, Аз не съм сигурен, че е наистина си струва blogging за, но това никога не ми спря преди, така че тук ние отивам Усмивка

Аз съм работа по даден проект, където аз съм дърпа някои данни от търсене, пакетирането му в XML съобщение и след това тази XML в крайна сметка се преобразува в HTML чрез XSLT.  Има много на jQuery, участващи, една част от които реализира някои tabbing функционалност.  Когато щракнете върху даден раздел (Наистина, а <DIV>), jQuery извиква .hide() и .show() на различни divs (на началната страница натоварване изтегля цялото съдържание, така че няма никакви връщания обратно в този случай).

Няколко часа преди, раздела превключване на логиката започна да се държат erratically и тя няма да се покаже един от моите раздели.  Аз в крайна сметка го проследи до факта, че internet explorer (най-малко) Мислех, че <DIV> етикети, вложени далеч, далеч по-дълбоко отколкото е предвидено.Развивам оръдие ще покаже:

-<DIV id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<DIV id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— най-накрая показва, че е затворен чак тук!

Така, Ако аз го направих $("#Tab1Content").Скрий(), Аз също така ще скриете Tab2 и никога не може да покаже Tab2 ако аз също не показват Tab1.  Аз копирани и поставили кода в visual studio и той показа всички на div подплата горе добре, точно като те би трябвало да се прави, гледам подобен този:

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

Бие главата ми срещу стената за известно време и забелязах, че в реалната HTML код е генериране много празни <DIV> Тагове, като:

<тяло>

  <DIV id = "Tab1Content">

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

  </DIV>

  <DIV id = "Tab2Content">

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

  </DIV>

</тяло>

(По-горе е waaaaaaaaaaaay опростени.  На празен div таговете са напълно валидни. Някои от моите <DIV> Tags са пълно съдържание, но много други не са.  Аз дойдох до осъзнаването, че ми <XSL:за всеки> директивите не се излъчва кратка форма когато Тагове div xsl:за всеки не "намери някакви данни.  Аз принудени HTML коментар в изхода, както е показано:

image

 

След като направих това, всички div подредени добре и ми tab превключване започва да работи.

Както винаги, Аз надежда този помагам някой в краен случай.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Още повече jQuery–Преоразмеряване на пример изображение

Аз наследих уеб компонент от стария доставчик на клиента и има изображение размер проблем.  Изображенията трябва да бъде 60×50 но за някои странни причина, оригиналния доставчик ги принуждава в 42×42, така че те изглеждат смачкано:

 

Добър имидж

Лош имидж

Тук е за маркиране (донякъде опростен):

<маса клас = "разширена-outlook">
  <thead>
    <TR>
      <TH  ширина = "100′>3 Вторник</TH>
    </TR>
  </thead>

  <tbody>
    <TR клас = "прогноза">
      <TD ширина = "100′>
        <UL>
          <Li клас = "високо">Високо: 72&deg;F</Li>
          <Li клас = "ниска цена">Ниска: 44&deg;F</Li>
          <Li клас = "състояние">Слънчев
            <IMG src =’
HTTP://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/EN/Trans/cond007.png’ ширина = "42’ височина = "42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</таблица>

Ще се отбележи, че въпреки че пътя до самото изображение показва правилното измерение (60×50) оригиналния доставчик е принуден в 42×42.  Защо?  Луд.

Все пак, Исках бързо и лесно решение за този проблем и аз се обърна към jQuery.  Номерът е да намерите всички от съответния <IMG> Тагове.  Аз не искам да се мотам с всички други img Тагове (от които има много).  Това малко на jQuery е трик:

<скрипт тип = текст/javascript"" SRC ="HTTP://AJAX.googleapis.com/AJAX/libs/JQuery/1.5/JQuery.min.js"></скрипт>

<скриптови тип = "текст/javascript">
     $(документ).готов(функция () {

         $("li.condition > IMG ").всеки(функция (индекс, елемент)
           
{
             $(елемент).CSS("ширина", "60"); 
             $(елемент).CSS("височина", "50");
            });
     }); // при зареждане на документ
</скрипт>

Този късче на код намира колекцията <Li> Тагове, чиято класа е "условие" и <IMG> деца.  Той след това повтаря през всичко това.  Работи като чар.

Вероятно може да рационализира го, но аз никога не е от вида на unix човек, този решен π за да 18 цифри прецизна sed и awk и аз не съм такъв, ако jQuery човек или Усмивка.

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Поеме контрола на вашия OK и отказ бутони

Написах тази статия a време гръб, но изглежда, че аз не линк към него от моя блог в момента, така че тук върви:

image

Тази статия описва как да принуди newform.aspx да се пренасочи към една страница, когато потребителят щракне върху OK и друга страница, когато тя щракне върху "Отказ".

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Бързо съвет: Добавяне на jQuery в Мос страници за публикуване

Когато повишаване Мос publising страници с jQuery, Аз удари на следните скорост бум:

Грешка в сървъра "/’ Приложение.


Грешка на анализатора

Описание: Възникна грешка при синтактичния анализ на даден ресурс, се изисква да се обслужи тази заявка. Моля, прегледайте следните специфични синтактична грешка подробности и променяте файла източник по подходящ начин.

Съобщение за грешка на анализатора: Са разрешени само контроли на съдържание директно в съдържанието на страницата, която съдържа контроли на съдържание.

Източник на грешка:

 
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 версия:2.0.50727.4927

Това е лесно да се определи (h/t за моя колега, Удай Дария).  Бъдете сигурни, че кода на jQuery живее вътре в "PlaceHolderAdditionalPageHead", както е показано:

<ASP:Съдържание ContentPlaceholderID = "PlaceHolderAdditionalPageHead" RunAt = "сървър">

<скрипт

    тип = текст/javascript""

    SRC="/JQuery/JQuery-1.4.min.js">

</скрипт>

<скриптови тип = "текст/javascript">

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

   // Брилянтен jQuery неща се поставя тук.

   });

</скрипт>

</край>

Абонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin