Архів тегів: jQuery

XSLT і jQuery зразки

Я займаюся багато XSLT і jQuery, і думав, я хотів би поділитися трохи фрагменти, які інші можуть виявитися корисними в майбутньому.

Приклад 1: Виділяють простий JavaScript / jQuery в XSLT:

<перетворення XSL:Шаблон матч = "щось" XML:простір = "Зберегти">

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

</перетворення XSL:Шаблон>

Що біт випромінює JavaScript, що чекає на сторінці, щоб процес завантаження (з-за $(документ).готові(…)) і потім набори значення приховані поля названа QueryFriendlyFilters буквальне значення "порожній".

Приклад 2: Використання <перетворення XSL:Якщо> Щоб перевірити «більше за»,  "менше", д.

<перетворення XSL:Шаблон матч = "щось" XML:простір = "Зберегти">

  <DIV id = "fdcAllFilters">
 
    <перетворення XSL:Якщо test="@Count>0">
      <охоплюють клас = "fdcFilterLabel">Поточних фільтрів:</Тривалість>
    </перетворення XSL:Якщо>

    <!– більше речей відбувається тут. –>

</перетворення XSL:Шаблон>

Вище фрагмент перевіряє, щоб побачити, якщо атрибут, названий "Count", "щось" елемента, більше нуля.  XML за це буде щось на зразок:”

<те, що кількість = "5" />

Приклад 3: Перебору всіх елементів, пересипаючи jQuery дзвінки.

<!– Перебору всі фільтри та відобразити правильний  посилання. –>
<перетворення XSL:для кожного виділення = "UserFilter">

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

  <охоплюють клас = "fdcFilterLabel"><перетворення XSL:значення з select="@FilterValue"/></Тривалість>

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

    $(документ).готові(функція(){
        <перетворення XSL:текст><![CDATA[$("#QueryFriendlyFilters").Валь( ($("#QueryFriendlyFilters").Валь() + " ]]></перетворення XSL:текст>\"<перетворення XSL:значення з select="@FilterValue"/>\"<перетворення XSL:текст><![CDATA["));]]></перетворення XSL:текст>
    });

  </сценарій>

</перетворення XSL:для кожного>

Вище фрагмент є найбільш складним і може бути простіше способу зробити це.

XML за це виглядає приблизно так:

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

Цей фрагмент ітерації через <UserFilter> вузли. 

Він вперше випромінює прив'язку тег, що при натисканні викликає JavaScript функції, що вже на сторінці, "mySubmitPage" і проходить значення атрибута на <UserFilter> вузлом ім'я «Ідентифікатор». 

Потім він випромінює 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, так МИЛО конверт було те, що вона дійсно необхідна.  Щоб отримати, що, Я написав трохи jQuery і потім використовувати скрипаля отримати фактичне розмова HTTP.

Ось відповідних jQuery (Я скопіювати код вниз нижче, якщо ви хочете копіювати/вставити):

image

Вони є першим ключовим включити обидві на <queryOptions> і <QueryOptions> вузол.  Другим ключовим є те, що на <Папка> вузол є URL-адресу, на яку клієнт має доступ.

Можливо, інші способи, щоб отримати це, але це працює добре для мене, коли за допомогою jQuery.

Ось МИЛО конверт для зазначених вище:

<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/блоги Сценарії, списки, настроюваний список з південь папках на рік 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тіло>
</soapenv:Конверт>

Багато прикладів і дискусії навколо цього привели мене до думки, що все, що мені потрібно було <QueryOptions> і вкажіть ім'я папки.  Для мене, Я потрібна обом оберніть його всередині <queryOptions> а також вказати повний URL для на <Папка> вузол.

Ось установка AJAX jQuery:

$(документ).готові(функція() {
       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

Нескінченно вкладення <DIV> Теги і jQuery

Це схоже такого дивак тему, Я не впевнений, що це дійсно коштує в блозі про, але це ніколи не зупиняло мене перед, так що тут ми йдемо посмішка

Я працюю проект, де я потягнувши деякі дані від пошуку, упаковки його в XML-повідомлення а потім що XML в кінцевому рахунку перетворюється в HTML за допомогою XSLT.  Існує багато jQuery участь, один біт, який реалізує деякі табуляції функціональність.  При натисканні на вкладці (Справді, на <DIV>), jQuery викликає .hide() і .show() різні Діви (первинного завантаження сторінки завантажує всі вміст, щоб там не без зворотної передачі при цьому).

Купу години тому, вкладці перемикання логіка почав працювати з помилками, і він не буде показувати один з моїх вкладки.  Я в кінцевому підсумку відслідковуються його аж до того, що 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> Мітки були повні змісту, але багато інших не були.  Я прийшов до усвідомлення того, що моя <перетворення XSL:для кожного> директиви були випромінюючих короткометражний формі div теги, коли xsl:для кожного не ' знайти будь-яких даних.  Я змушений HTML коментар у виході, як показано:

image

 

Після того, як я це зробив, всі div вишикувалися красиво і мій вкладку перемикання почав працювати.

Як завжди, Я сподіваюся, що це допоможе кому-то в крайньому випадку.

</кінець>

Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Ще більше jQuery–Змінити розмір зображення-приклад

Я успадкувала веб-частину від клієнта старого продавця, і він став проблемою іміджу розмір.  Зображення повинні бути 60×50 але для деякого непарного причини, оригінальний постачальника змусила їх в 42×42, так, щоб вони стисло:

 

Гарне зображення

Поганий імідж

Ось розмітки (дещо спрощене письмо):

<Таблиця клас = 'extended outlook'>
  <thead>
    <TR>
      <го  Ширина ='100′>3 Вівторок</го>
    </TR>
  </thead>

  <tbody>
    <TR-клас = 'прогнози'>
      <TD ширина ='100′>
        <ul>
          <Лі клас = 'високий'>Висока: 72&Тру;F</Лі>
          <Лі клас = "низький">Низький: 44&Тру;F</Лі>
          <Лі клас = 'умови'>Сонячно
            <IMG src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/EN/Trans/cond007.png’ Ширина ='42’ Висота ='42’ Alt =” />
          </Лі>
        </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");
            });
     }); // завантаження документа
</сценарій>

Що біт код знаходить колекції <Лі> Мітки, чиї клас є "стан" і <IMG> дітей.  Потім він спроектувала через все це.  Працював як шарм.

Я ймовірно може оптимізувати його, але я ніколи не був на unix хлопцем, вирішеня π Щоб 18 точність цифр за допомогою sed і awk, і я не такий, якщо jQuery хлопець або посмішка.

</кінець>

Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Взяти під контроль ваш ОК і кнопки скасувати

Я написав у цій статті деякий час назад, але схоже, що я не посилання на нього з мого блогу в той час, Ось іде:

image

Ця стаття описує як змусити newform.aspx переспрямування до однієї сторінки, коли користувач натискає ОК і іншої сторінки, коли вона натискає кнопку "Скасувати".

</кінець>

Підписатися на мій блог.

Йди за мною на 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 на мою колезі, Удай Ethirajulu).  Переконайтеся, що код jQuery живе всередині "PlaceHolderAdditionalPageHead", як показано:

<ASP:Зміст ContentPlaceholderID = "PlaceHolderAdditionalPageHead" runat = "сервер">

<сценарій

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

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

</сценарій>

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

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

   // Блискучий jQuery речі тут йде.

   });

</сценарій>

</кінець>

Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin