Tag Archives: jQuery

XSLT ir jQuery mėginiai

Man daryti daug XSLT ir jQuery ir thought I 'd share kelis fragmentus, kad kiti gali rasti naudingos ateityje.

Pavyzdys 1: Išmeta paprasta veikiancio JavaScript / jQuery, XSLT:

<XSL:šablono rungtynės = "kažkas" XML:erdvės = "išsaugoti">

  <!– Tuščias iš užklausos draugiškas filtrai paslėpto lauko –>
  <scenarijaus tipas = "text/javascript">
    $(dokumento).paruošta(funkcija(){
      $("#QueryFriendlyFilters").val("tuščias");
    });
  </scenarijų>

</XSL:šablonas>

Kad šiek tiek skleidžia tam JavaScript, kad laukia puslapio įkėlimą (Todėl, kad $(dokumento).paruošta(…)) ir tada rinkiniai paslėpto lauko vertė pavadinimu QueryFriendlyFilters raidinė reikšmė "tuščias".

Pavyzdys 2: Naudoti <XSL:Jei> patikrinti "didesnis už",  "mažiau kaip", ir tt.

<XSL:šablono rungtynės = "kažkas" XML:erdvės = "išsaugoti">

  <div id = "fdcAllFilters">
 
    <XSL:Jei test="@Count>0">
      <span class = "fdcFilterLabel">Esami filtrai:</tarpą>
    </XSL:Jei>

    <!– Daugiau stuff vyksta čia. –>

</XSL:šablonas>

Aukščiau fragmentą tikrina jei atributas, pavadintas "Skaičiuoti", "kažkas" elementas yra didesnis už nulį.  XML už tai būtų kažkas panašaus:”

<kažkas Count = "5" />

Pavyzdys 3: Kartoti per visus elementus, Interspersing jQuery skambučius.

<!– Iterate per visus filtrus ir parodyti teisingą  nuorodos. –>
<XSL:už kiekvieną pasirinkite = "UserFilter">

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

  <span class = "fdcFilterLabel"><XSL:vertė-apie select="@FilterValue"/></tarpą>

  <scenarijaus tipas = "text/javascript">

    $(dokumento).paruošta(funkcija(){
        <XSL:tekstas><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:tekstas>\"<XSL:vertė-apie select="@FilterValue"/>\"<XSL:tekstas><![CDATA["));]]></XSL:tekstas>
    });

  </scenarijų>

</XSL:už kiekvieną>

Aukščiau ištrauka yra pati sudėtingiausia ir gali būti lengviau būdų tai padaryti.

XML už tai atrodo maždaug taip:

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

Šiame fragmente yra Iteracja per <UserFilter> mazgų. 

Ji pirmą kartą skleidžia žymę žymėti, kai paspaudėte remiasi JavaScript funkcija, kuri jau yra puslapyje, "mySubmitPage" ir pereina esančio atributo reikšmė, <UserFilter> mazgo pavadinimu "ID". 

Ji tada skleidžia kai jQuery, kad laukia, kad įkelti.  Kad jQuery atnaujina paslėptas laukas, pavadintas "QueryFriendlyFilters" pridedant FilterValue atributo.  Pastaba visi crazy kirm <XSL:tekstas> ir <![CDATA[ … ]]> daiktai.

Štai ir viskas, Tikiuosi, kad jis padeda!

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Lists.asmx, GetListItems ir aplankai

Darau kai tyrimų kažkas šiandien aplink kaip SharePoint žiniatinklio paslaugos list.asmx 2010 (ir anksčiau).  Ji buvo suteikta galimybė gauti sąrašo elementus į šakninį aplanką (įskaitant poaplankius pavadinimai), Tačiau negalėjo gauti elementus ir poaplankius.  Aš padarė kai dairausi internetas ir tai yra stebėtinai įprastas klausimas.  Dar, Aš negalėjo gauti tinkamą atsakymą į paprastą klausimą, "jei aš žinau aplanką, kaip man elementus į aplanką?”  Tiesą sakant, Aš ne bandyti visi, kad sunku, nes aš norėjau pav tai vienas iš savo, o šypsena.

Kad tai nustatytumėte, Aš sukūrė tinklalapį, pavadintą "Blogų scenarijų" ir pavadintas "Pasirinktinį sąrašą su Sub katalogų" pasirinktinį sąrašą.  Aš tada sukūrė aplankus pavadintus:

  • Metų 2005
  • Metų 2006
  • Metų 2007

Aš pridėjo keletą daiktų į aplanką "metai 2006".  Tai kaip jis atrodo:

image

Mano draugas yra ne rašyti C# kodą bet o naudojant Java, Taigi SOAP vokas buvo, kas ji tikrai reikalinga.  Gauti, kad, Aš šiek tiek jQuery ir tada gaudavo smuikininkas tikrasis HTTP pokalbis.

Štai atitinkamo jQuery (Aš nukopijuoti kodą žemyn žemiau jei norite kopijuoti ir įklijuoti):

image

Jos pirmasis svarbiausia yra ir yra <queryOptions> ir <QueryOptions> mazgas.  Antrajam raktui yra tai, kad į <Aplankas> mazgas yra URL kuria klientas gali naudotis.

Gali būti kitų būdų, kaip gauti šią, bet tai dirbo gerai man naudojant jQuery.

Štai SOAP vokas planai:

<soapenv:Voko xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Įstaiga>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Pasirinktinį sąrašą su poaplankius</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef pavadinimas = "pavadinimas’ />
          <FieldRef pavadinimas = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Aplankas>
http://demoserver1/Dienoraštis Scenarijų/sąrašai/Pasirinktinis sąrašas su submeniu aplankus/metai 2006</Aplankas>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Įstaiga>
</soapenv:Vokas>

Daug pavyzdžių ir diskusijų apie tai privertė mane manyti, kad visi man reikia buvo <QueryOptions> ir nurodykite aplanko pavadinimą.  Man, Man reikia tiek apvyniokite viduje <queryOptions> taip pat nurodyti visas URL į <Aplankas> mazgas.

Štai jQuery AJAX nustatymas:

$(dokumento).paruošta(funkcija() {
       var soapEnv =
           "<soapenv:Voko xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Įstaiga> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Pasirinktinį sąrašą su poaplankius</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef pavadinimas = "pavadinimas’ /> \
                              <FieldRef pavadinimas = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Aplankas>http://demoserver1/Blogging Scenarijų/sąrašai/Pasirinktinis sąrašas su submeniu aplankus/metai 2006</Aplankas> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Įstaiga> \
           </soapenv:Vokas>";

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Be galo įdėjimo <DIV> Žymos ir jQuery

Tai atrodo kaip tokia yra originalus tema, Aš nesu įsitikinęs, kad tikrai verta dienoraštį apie, bet kad niekada nenustojo man prieš, Taigi čia mes einame šypsena

Aš dirbu apie projektą, kai I 'm traukiamosios kai kuriuos duomenis iš paieškos, pakavimo jį į XML pranešimą ir tada kad XML galiausiai transformuoti į HTML per XSLT.  Yra daug jQuery, vienas bitų, kurios įgyvendina keletas skirtukų funkcija.  Spustelėjus skirtuke (tikrai, a <DIV>), jQuery remiasi .hide() ir .show() dėl įvairių divs (pradinio puslapio apkrova parsisiųsti visą turinį, todėl šiuo atveju nėra jokių postbacks).

A ryšelyje valandos, skirtuką Perėjimas logika pradėjo elgtis su klaidom ir ji nebūtų parodyti viena iš mano skirtukus.  Galiausiai sekant jis į tai, kad programa Internet explorer (ne mažiau kaip) Maniau, kad į <DIV> įdėti daug žymos, kiek giliau nei skirti.Programuotojų įrankių rodytų:

-<DIV id = "Tab1Content">
  -<DIV>
    -<DIV>
      -<DIV id = "Tab2Content">
        -<DIV>
           …………………………
                   </DIV>  <— Galiausiai rodyti ji buvo uždaryta visą kelią čia!

Taigi, Jei aš, kad $("# Tab1Content").Slėpti(), Aš taip pat paslėpti Tab2 ir gali niekada parodyti Tab2 jei ne taip pat rodyti 1 tabuliatoriaus žymė.  I nukopijuoti ir įklijuoti kodą į visual studio, ir jis parodė, visi div's antdėklo iki gražiai, kaip jie turėjo daryti, ieškote kaip tai:

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

I ritmas galvą prie sienos metu ir pastebėjau, kad faktinė HTML kodas buvo generuoti daug tuščių <DIV> Žymos, kaip:

<įstaiga>

  <DIV id = "Tab1Content">

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

  </DIV>

  <DIV id = "Tab2Content">

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

  </DIV>

</įstaiga>

(Pirmiau yra waaaaaaaaaaaay, naratyvą.  Tuščias div žymės yra visiškai galiojantį. Kai kurie iš mano <DIV> Žymos buvo pilnas turinio, Tačiau daug daugiau nebuvo.  Aš atėjau prie realizavimo kad mano <XSL:už kiekvieną> direktyvas buvo spinduliuojantis sutrumpintos formos div žymės kai į xsl:už kiekvieną ne "rasti jokių duomenų.  Aš priversta HTML komentarą į produkcijos, kaip parodyta:

image

 

Po to, kai aš padariau, kad, visi div liniuotas gražiai ir mano skirtuką Perėjimas pradėjo dirbti.

Kaip visada, Tikiuosi, kad tai padeda kažkas kraštutiniu atveju.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Dar daugiau jQuery–Keisti vaizdo pavyzdys

Aš paveldėtas žiniatinklio dalį iš kliento senas tiekėjo ir ji vaizdo dydžio problema.  Vaizdai turi būti 60×50 Tačiau kai kurių nelyginis priežasties, pradinio tiekėjo privertė juos į 42×42, Taigi jie atrodo squashed:

 

Gera vaizdo

Bloga vaizdo

Čia yra žymėjimas (šiek tiek supaprastinta):

<lentelės klasės = "išplėsti programos outlook">
  <thead>
    <TR>
      <TH  plotis = "100′>3 Antradienis</TH>
    </TR>
  </thead>

  <tbody>
    <TR klasės = "Oras">
      <TD plotis = "100′>
        <UL>
          <Li klasės = "aukšto">Didelis: 72&DEG;F</Li>
          <Li klasės = "mažas">Žemas: 44&DEG;F</Li>
          <Li klasės = "sąlygos">Saulės
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/Icons/localized/60×50/EN/trans/cond007.png’ plotis = "42’ aukštis = "42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</lentelė>

Jums bus pažymėti, kad nors, kelias į vaizdą, pati rodo tinkamą dimensija (60×50) pradinio tiekėjo privertė ją 42×42.  kodėl?  pakvaišęs.

Bet kokiu atveju, Aš norėjau greitai ir lengvai išspręsti šį klausimą ir aš pasuko į jQuery.  Norėdami rasti visus atitinkamo buvo pavyko <IMG> Žymos.  Aš nenorėjo išmesti laiminčią su kitų img žymės (kurios yra daug).  JQuery šiek tiek padarė pavyko:

<scenarijaus tipas = "text/javascript" src ="http://Ajax.googleapis.com/Ajax/libs/JQuery/1.5/JQuery.min.js"></scenarijų>

<scenarijaus tipas = "text/javascript">
     $(dokumento).paruošta(funkcija () {

         $("li.condition > IMG ").Kiekviena(funkcija (indeksas, prekės)
           
{
             $(prekės).CSS("plotis", "60"); 
             $(prekės).CSS("aukštis", "50");
            });
     }); // dėl dokumento apkrovos
</scenarijų>

Kad šiek tiek kodas nustato, rinkimo <Li> Žymos, kurio klasė yra "sąlyga" ir <IMG> vaikai.  Jis tada kartoja per visa tai.  Dirbo kaip Šarm.

Aš tikriausiai galėtų racionalizuoti ji, bet aš niekada buvo a tipo unix vaikinas, kad išspręsti 2π × į 18 skaitmenų tikslumas, naudojant sed ir awk ir aš ne tokio pobūdžio jei jQuery vaikinas, arba šypsena.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Imtis kontroliuoti savo gerai ir atšaukti mygtukai

Parašiau Šis straipsnis o atgal, bet atrodo, kad aš ne nuorodą į jį iš mano dienoraščio tuo metu, Taigi čia eina:

image

Šiame straipsnyje aprašoma, kaip priversti newform.aspx nukreipti į vieną puslapį, kai vartotojas spusteli gerai ir kitą puslapį ji spustelėjus atšaukti.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Greitas Patarimas: JQuery pridėjimą MOSS publikavimo puslapiams

Kai didinimo MOSS publikavimo puslapius naudojant jQuery, I hit šių speed bump:

Serverio klaida "/’ Taikymas.


Analizatoriaus klaida

Aprašymas: Apdorojant ir išteklių, kurio reikia aptarnaujant šią užklausą, įvyko klaida. Peržiūrėkite šiuos konkrečius sintaksės klaidos informaciją ir keisti savo šaltinio failas tinkamai.

Analizatoriaus klaida: Tik turinio valdiklius leidžiama tiesiogiai į turinio puslapyje, kuriame yra turinio valdiklius.

Kodo klaida:

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

Šaltinio failas: /_catalogs/masterpage/KCC_FacultyMember.aspx    Eilutės: 12


Versijos informacija: Microsoft .NET sistemoje versija:2.0.50727.4927; ASP.NET versija:2.0.50727.4927

Tai buvo pakankamai lengva nustatyti (h/t mano kolega, Uday Ethirajulu).  Įsitikinkite, kad jQuery kodo gyvena viduje "PlaceHolderAdditionalPageHead" kaip parodyta:

<ASP:Turinio ContentPlaceholderID = "PlaceHolderAdditionalPageHead" būti runat = "server">

<scenarijų

    tipas = text/javascript""

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

</scenarijų>

<scenarijaus tipas = "text/javascript">

  $(dokumento).paruošta(funkcija() {

   // Puiki jQuery daiktai yra čia.

   });

</scenarijų>

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin