Archiwa tagów: jQuery

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

Lists.asmx, GetListItems i folderów

Robię niektórych badań dla kogoś dziś około list.asmx usługi sieci web w ramach programu SharePoint 2010 (i wcześniejszych).  Okręt był w stanie uzyskać elementów listy w głównym folderze (łącznie nazw podfolderów), jednak nie można pobrać elementy w podfolderach.  I did, niektóre patrząc sieciach internetowych i jest zaskakująco często pytanie.  Jeszcze, Nie mogłam dobrej odpowiedzi na proste pytanie, "Jeśli wiadomo folder, jak uzyskać elementy w folderze?”  Szczerze, I spróbuj nie wszystkie twarde ponieważ wcześniej chciałem do rysunku, to jeden z samodzielne na chwilę Uśmiech.

Aby skonfigurować, Utworzony witrynę o nazwie "Blogi scenariuszy" i niestandardowej listy o nazwie "Niestandardowe listy z podfoldery".  Następnie utworzony foldery o nazwie:

  • Rok 2005
  • Rok 2006
  • Rok 2007

Po dodaniu kilku elementów do folderu "Rok 2006".  Jest to, jak ona wygląda:

image

Mój przyjaciel nie pisząc kod C#, ale raczej przy użyciu języka Java, tak więc koperty SOAP została co tak naprawdę potrzebuje.  Aby uzyskać, Napisał nieco jQuery i następnie używana skrzypek, aby uzyskać notatkom HTTP.

Oto odpowiednich jQuery (Skopiowano kod w dół poniżej jeśli chcesz kopiowania/wklejania):

image

Ich pierwszy klucz ma zawierać zarówno <queryOptions> i <QueryOptions> węzeł.  Drugi klucz jest <Folderu> węzeł jest to adres URL, do którego klient ma dostęp.

Mogą istnieć inne sposoby żeby to, ale to pracował również dla mnie podczas używania jQuery.

Oto koperty SOAP dla powyższego:

<soapenv:Koperta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:Organ>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Lista niestandardowa z podfoldery</listName>
      <viewFields>  
        <ViewFields>
          <Nazwa FieldRef =' Tytuł’ />
          <FieldRef Name = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folderu>
http://demoserver1/blogi Lista scenariuszy/list/niestandardowa z Sub folderów na rok 2006</Folderu>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Organ>
</soapenv:Koperta>

Wiele przykładów i dyskusji wokół to doprowadziło me by sądzić, że wszystko, co potrzebne było <QueryOptions> i określ nazwę folderu.  Dla mnie, I potrzeby zarówno opakować go wewnątrz <queryOptions> jak określić pełni kwalifikowany adres URL dla <Folderu> węzeł.

Oto instalacji AJAX jQuery:

$(dokument).gotowe(Funkcja() {
       var soapEnv =
           "<soapenv:Koperta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:Organ> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Lista niestandardowa z podfoldery</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Nazwa FieldRef =' Tytuł’ /> \
                              <FieldRef Name = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folderu>http://demoserver1/Blogging Lista scenariuszy/list/niestandardowa z Sub folderów na rok 2006</Folderu> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Organ> \
           </soapenv:Koperta>";

</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

Jeszcze więcej jQuery–Rozmiar Przykładem obrazu

I dziedziczone składnika web part dostawcy starych klienta i ma problemu rozmiar obrazu.  Obrazy należy 60×50 jednak z jakiegoś powodu nieparzysta, oryginalny dostawcy zmusiły je do 42×42, tak wyglądają squashed:

 

Dobrą jakość obrazu

Zły obraz

Oto znaczników (nieco uproszczony):

<Tabela klasy = "rozszerzony programu outlook">
  <THEAD>
    <TR>
      <TH  Szerokość = "100′>3 Wtorek</TH>
    </TR>
  </THEAD>

  <tbody>
    <Klasa TR = "Prognoza">
      <szerokość TD = "100′>
        <UL>
          <Klasa li = "wysoki">Wysokie: 72&DEG;F</Li>
          <Klasa li = "niski">Niski: 44&DEG;F</Li>
          <Klasa li = "warunkiem">Słoneczny
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/EN/trans/cond007.PNG’ szerokość ='42’ wysokość ='42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</Tabela>

Będziesz, mimo że Uwaga Ścieżka do samego obrazu pokazuje właściwego wymiaru (60×50) oryginalny dostawcy zmusił go w 42×42.  Dlaczego?  Szalony.

Mimo to, Chciałem szybkie i proste rozwiązanie tego problemu i ja obróciłem się jQuery.  Lewę było zlokalizować wszystkie odpowiednie <img> znaczniki.  Nie chcę zakrycie z innych znaczników img (którego istnieje wiele).  Ten bit jQuery brała lewy:

<skrypt typu = "text/javascript" src ="http://AJAX.googleapis.com/AJAX/Libs/jQuery/1.5/jQuery.min.js"></skrypt>

<skrypt typu = "text/javascript">
     $(dokument).gotowe(Funkcja () {

         $("li.condition > img ").Każdy(Funkcja (Indeks, element)
           
{
             $(element).CSS("szerokość", "60"); 
             $(element).CSS("wysokość", "50");
            });
     }); // Ładuj dokumentu
</skrypt>

Ten bit kod znajdzie kolekcji <Li> tagi, których klasa jest "warunki" i <img> dzieci.  Następnie iteracyjnie przegląda wszystko.  Pracował jak urok.

Prawdopodobnie może usprawnić, ale nigdy nie była rodzaju guy unix, który rozwiązał π do 18 cyfr dokładności przy użyciu sed i awk i I 'm not tego rodzaju jeśli jQuery guy albo Uśmiech.

</koniec>

Subskrybowanie mój blog.

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

Przejęcie kontroli nad przycisk OK i Anuluj przyciski

Napisałem w tym artykule while back, ale wygląda jak nieoczekiwane I połączyć go z moim blogu w czasie, Tak tu elektrotechnicznych blach teksturowanych:

image

W tym artykule opisano sposób zmusić pliki newform.aspx aby przekierować do jednej strony, gdy użytkownik kliknie przycisk OK i innej strony, podczas kliknięcia przycisku Anuluj.

</koniec>

Subskrybowanie mój blog.

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

Drobna porada: Dodawanie jQuery do publikowania stron MOSS

Gdy zwiększenie MOSS publikacji stron za pomocą jQuery, I naciśnij następujące nierówności prędkości:

Błąd serwera w ' /’ Aplikacja.


Błąd parsera

Opis: Wystąpił błąd podczas analizowania zasobów wymaganych do obsługi tego żądania. Przejrzyj następujące szczegóły błędu szczegółowe analizy i odpowiednio zmodyfikuj plik źródłowy.

Komunikat o błędzie analizatora: Dozwolone są tylko formanty zawartości, bezpośrednio w treści strony, który zawiera formanty zawartości.

Źródła błędu:

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

Plik źródłowy: /_catalogs/masterpage/KCC_FacultyMember.aspx    Linia: 12


Informacje o wersji: Microsoft.NET Framework w wersji:2.0.50727.4927; STRON ASP.Wersja netto:2.0.50727.4927

To było dość łatwo naprawić (h/t do mojego kolegi, Uday Ethirajulu).  Upewnij się, że kod jQuery życie wewnątrz "PlaceHolderAdditionalPageHead", jak pokazano:

<ASP:Zawartość ContentPlaceholderID = "PlaceHolderAdditionalPageHead" RUNAT = "server">

<skrypt

    Typ = text/javascript""

    src="/jQuery/jQuery-1.4.min.js">

</skrypt>

<skrypt typu = "text/javascript">

  $(dokument).gotowe(Funkcja() {

   // Genialny jQuery rzeczy idzie tutaj.

   });

</skrypt>

</koniec>

Subskrybowanie mój blog.

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