Tag Archives: jQuery

Mostres de XSLT i jQuery

He estat fent un munt de XSLT, jQuery i thought que i share uns quants fragments que altres el poden trobar útils en el futur.

Exemple 1: Emeten simple JavaScript / jQuery a XSLT:

<XSL:Partit de plantilla = "alguna cosa" XML:espai = "preservar">

  <!– Fora el camp ocult de filtres amistós de consulta en blanc –>
  <tipus d'escriptura = "text/javascript">
    $(document).preparat(funció(){
      $("#QueryFriendlyFilters").val("buit");
    });
  </script>

</XSL:plantilla>

Aquella mica emet una mica de JavaScript que espera per a la pàgina per acabar de carregar (a causa de la $(document).preparat(…)) i llavors conjunts el valor d'un camp ocult anomenat QueryFriendlyFilters al valor literal "buida".

Exemple 2: Ús <XSL:Si> per comprovar "superior",  "menys de", etc.

<XSL:Partit de plantilla = "alguna cosa" XML:espai = "preservar">

  <Div id = "fdcAllFilters">
 
    <XSL:Si test="@Count>0">
      <span class = "fdcFilterLabel">Filtres actuals:</span>
    </XSL:Si>

    <!– més coses passa aquí. –>

</XSL:plantilla>

El fragment damunt comprovacions per veure si hi ha un atribut anomenat "Comptar" de l'element "alguna cosa" més gran que zero.  L'XML darrere d'això seria una cosa així com:”

<alguna cosa Count = "5" />

Exemple 3: ITER a través de tots els elements, intercalant trucades de jQuery.

<!– ITER a través de tots els filtres i mostrar la correcta  enllaços. –>
<XSL:per a cada select = "UserFilter">

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

  <span class = "fdcFilterLabel"><XSL:valor de select="@FilterValue"/></span>

  <tipus d'escriptura = "text/javascript">

    $(document).preparat(funció(){
        <XSL:text><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:text>\"<XSL:valor de select="@FilterValue"/>\"<XSL:text><![CDATA["));]]></XSL:text>
    });

  </script>

</XSL:per a cada>

El fragment de dalt és el més complex i hi pot haver més fàcils maneres de fer-ho.

L'XML darrere d'això s'assembla més o menys com aquest:

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

Aquest fragment és itereu a través de <UserFilter> Nodes. 

En primer lloc que emet un àncora d'etiquetes que quan fet clic invoca una funció de JavaScript que és ja a la pàgina, "mySubmitPage" i de passa el valor d'un atribut la <UserFilter> node anomenat "ID". 

Llavors emet alguns jQuery que espera per a la pàgina carregar.  Aquell jQuery actualitzacions d'un camp d'amagat anomenat "QueryFriendlyFilters" per afegir el valor de l'atribut FilterValue.  Tingueu en compte tot el boig <XSL:text> i <![CDATA[ … ]]> matèria.

Això és tot, esperança que ajudi!

</final>

Subscriure's al meu blog.

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

Lists.asmx, GetListItems i carpetes

Jo estava fent una investigació per algú avui al voltant de la list.asmx web servei proporcionat com part del SharePoint 2010 (i anteriors).  Ella va ser capaç d'obtenir els elements de la llista a la carpeta d'arrel (incloent-hi els noms de sub-carpetes), però no podria aconseguir elements en subcarpetes.  Vaig fer algunes mirant al voltant de la internets i és una pregunta sorprenentment comú.  No obstant això, No podria aconseguir una bona resposta a la pregunta simple, "si jo sé la carpeta, com puc obtenir els elements a la carpeta?”  Per ser honest, No intento dur tot el que ja he volgut aquest un terme figura en el meu propi una estona somriure.

Per configurar-ho, He creat un lloc anomenat "Blogging escenaris" i una llista personalitzada anomenat "Costum llista amb subcarpetes".  Llavors vaig crear carpetes anomenades:

  • L'any 2005
  • L'any 2006
  • L'any 2007

He afegit uns elements a la carpeta de "Any 2006".  Això és el que sembla:

image

El meu amic no és l'escriptura de codi de c# però més aviat utilitzant Java, Així, els sobres de sabó, va ser el que realment necessitava.  Per aconseguir que, Vaig escriure una mica de jQuery i llavors utilitzava el violinista a la conversa d'HTTP present.

Heus aquí la jQuery rellevant (He copiat el codi avall per sota si vol copiar/enganxar):

image

És de primera clau per incloure a banda un <queryOptions> i <QueryOptions> node.  La segona clau és que el <Carpeta> node és un URL al qual el client té accés.

Pot haver-hi altres maneres d'aconseguir això, però això funcionava bé per a mi quan utilitzant jQuery.

Aquí hi ha les sobres de sabó per a l'anterior:

<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Cos>
    <GetListItems xmlns =’
http://Schemas.Microsoft.com/SharePoint/SOAP/’>
      <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA>
      <viewFields>  
        <ViewFields>
          <FieldRef nom =' títol’ />
          <Nom de FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Carpeta>
http://demoserver1/blocs Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Cos>
</soapenv:Sobres>

Un munt d'exemples i discussió al voltant d'això em va portar a crec que tot el que necessito és la <QueryOptions> i especifiqueu un nom de carpeta.  Per a mi, Jo necessitar als dos embolicar dins <queryOptions> així com d'especificar una URL plenament qualificat per a la <Carpeta> Node.

Aquesta és la configuració d'AJAX jQuery:

$(document).preparat(funció() {
       var soapEnv =
           "<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Cos> \
                    <GetListItems xmlns =’http://Schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nom =' títol’ /> \
                              <Nom de FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Carpeta>http://demoserver1/Blogging Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Cos> \
           </soapenv:Sobres>";

</final>

Subscriure's al meu blog.

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

Sense parar nidificació <Div> Etiquetes i jQuery

Això sembla com un tema tan oddball, No estic segur que realment val la pena blogging sobre, però que mai no ha deixat m abans de, Així que aquí anem somriure

Estic treballant en un projecte on m'estic tirant algunes dades d'una cerca, embalatge a un missatge XML i llavors aquella XML en última instància, es transforma en HTML mitjançant XSLT.  Hi ha un munt de jQuery implicats, una mica de que implementa alguna funcionalitat tabulació.  Quan fa clic a una fitxa (realment, un <Div>), jQuery invoca .hide() i .show() en diversos divs (càrrega de la pàgina inicial descarrega tot el contingut, així que hi ha cap devolucions en aquest cas).

Un grapat d'hores fa, la pestanya commutació lògica començar a comportar-se de manera erràtica i no Mostra un dels meus tabuladors.  Jo finalment segueixi fins el fet que Explorador d'internet (com a mínim) pensar que la <Div> Etiquetes niuades lluny, molt més profund que pretén.El toolbar de desenvolupador mostraria:

-<div id = "Tab1Content">
  -<Div>
    -<Div>
      -<div id = "Tab2Content">
        -<Div>
           …………………………
                   </Div>  <— Finalment demostrant que fou clausurada completament aquí!

Així, si feia un $("#Tab1Content").Amaga(), També em vaig amagar els Tab2 i jo podria mai no mostrar Tab2 si no mostrar també Tab1.  Copiava i enganxava el codi a visual studio i va mostrar tots convenint el div manera bonica, igual que suposava estar fent, mirant com aquest:

-<div id = "Tab1Content">
  +<Div>
  +<Div>
-<div id = "Tab2Content">
  +<Div>
  +<Div>

Vaig batre el meu cap contra la paret per una estona i notat que en el present codi HTML codi es genera una gran quantitat de buit <Div> Etiquetes, com:

<cos>

  <div id = "Tab1Content">

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

  </Div>

  <div id = "Tab2Content">

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

  </Div>

</cos>

(Això és waaaaaaaaaaaay simplista.  Les etiquetes div buides són totalment vàlids. Alguns dels meus <Div> Etiquetes estaven plenes de contingut, però no eren molts més.  Vaig arribar a la conclusió que el meu <XSL:per a cada> directives estaven emetent la forma curta etiquetes div quan el xsl:no per-tots "trobar cap dada.  Jo forçat un comentari HTML a la sortida, com es Mostra:

image

 

Després que fes allò, tots el div alineats molt bé i meu tabulador de commutació va començar a treballar.

Com sempre, Espero que això ajudi a algú en un pessic.

</final>

Subscriure's al meu blog.

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

No obstant això, més jQuery–Redimensionar un exemple d'imatge

Heretava un element web de proveïdor vells del client i que té un problema de mida d'imatge.  Les imatges haurien de 60×50 però per alguna estranya raó, el venedor original els obligà a 42×42, Així es veuen aplastat:

 

Bona imatge

Mala imatge

Aquí està l'etiquetatge (simplificat una mica):

<taula class = 'estès-outlook'>
  <Thead>
    <tr>
      <th  amplada = 100′>3 Dimarts</th>
    </tr>
  </Thead>

  <tbody>
    <classe TR = 'previsió'>
      <amplada TD = 100′>
        <ul>
          <classe li = "high">Alta: 72&DEG;F</li>
          <classe li = 'baixa'>Baixa: 44&DEG;F</li>
          <classe li = 'condició'>Assolellat
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ amplada ='42’ alçada ='42’ alt =” />
          </li>
        </ul>
      </TD>
    </tr>

  </tbody>

</taula>

S'haurà adonat que tot i que la camí cap a la mateixa imatge Mostra la dimensió adequada (60×50) el venedor original va obligar a 42×42.  Per què?  Boig.

De tota manera, Jo volia una solució ràpida i fàcil a aquest assumpte i em vaig tornar a jQuery.  El truc era localitzar totes les adequades <img> Etiquetes.  No volia fems amb cap altra etiqueta img (de les quals n'hi ha molts).  Aquesta mica de jQuery feia el truc:

<tipus d'escriptura = text/javascript"" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></script>

<tipus d'escriptura = "text/javascript">
     $(document).preparat(funció () {

         $(' li.condition > img ").cada(funció (índex, element)
           
{
             $(element).CSS("amplada", "60"); 
             $(element).CSS("Alçada", "50");
            });
     }); // càrrega de documents
</script>

Aquest tros de codi es troba la col·lecció <li> Etiquetes la classe és "condició" i <img> nens.  Llavors ho itera a través de tot això.  Treballat com un encant.

Probablement podria simplificar-lo, però mai va ser un tipus de tipus unix que resolt π per 18 precisió de dígits utilitzant sed i awk i jo no sóc aquest tipus si jQuery qualsevol tipus somriure.

</final>

Subscriure's al meu blog.

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

Prendre el Control del seu correcte i anul·lar botons

Jo vaig escriure Aquest article una estona altra vegada, però sembla no vinculats a ella des del meu blog en el moment, Així que aquí va:

image

Aquest article descriu com forçar newform.aspx redirigir a una sola pàgina quan l'usuari fa clic correcte i una pàgina diferent quan es fa clic Anul·lar.

</final>

Subscriure's al meu blog.

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

Punta ràpida: Addició de jQuery a les pàgines de publicació molsa

Quan millora molsa publising pàgines utilitzant jQuery, Colpeixo el següent cop velocitat:

Error de servidor en ' /’ Aplicació.


Error de l'analitzador

Descripció: S'ha produït un error durant l'anàlisi d'un recurs requerit per aquesta sol·licitud de servei. Si us plau revisi els detalls d'error d'anàlisi específic següent i modificar el seu arxiu de font apropiadament.

Missatge d'Error d'analitzador: Només s'admeten els controls de contingut directament a una pàgina de contingut que conté controls de contingut.

Error de font:

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

Fitxer d'origen: /_catalogs/masterpage/KCC_FacultyMember.aspx    Línia: 12


Informació de versió: Microsoft .net versió d'estructura:2.0.50727.4927; Versió d'ASP.net:2.0.50727.4927

Era prou fàcil d'arreglar (/ h t al meu col·lega, Uday Ethirajulu).  Assegureu-vos que el codi de jQuery viu dins la "PlaceHolderAdditionalPageHead" tal com es Mostra:

<escurçó:Continguts ContentPlaceholderID = PlaceHolderAdditionalPageHead»" runat = "servidor">

<script

    tipus = text/javascript""

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

</script>

<tipus d'escriptura = "text/javascript">

  $(document).preparat(funció() {

   // JQuery brillant coses passa aquí.

   });

</script>

</final>

Subscriure's al meu blog.

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