ట్యాగ్ ఆర్కైవ్స్: j క్వెరీ

XSLT మరియు j క్వెరీ నమూనాలు

నేను XSLT మరియు j క్వెరీ యొక్క చాలా చేయడం మరియు నేను ఇతరుల భవిష్యత్తులో ఉపయోగపడే కొన్ని స్నిప్పెట్లను భాగస్వామ్యం ఇష్టం ఆలోచన చేశారు.

ఉదాహరణ 1: సాధారణ జావాస్క్రిప్ట్ విడుదల / XSLT లో j క్వెరీ:

<XSL:template match="something" xml:space="preserve">

  <!– ప్రశ్న స్నేహపూర్వక ఫిల్టర్లు దాచిన ఫీల్డ్ ఖాళీగా –>
  <script type="text/javascript">
    $(పత్రం).సిద్ధంగా(ఫంక్షన్(){
      $("#QueryFriendlyFilters").Val("empty");
    });
  </లిపి>

</XSL:టెంప్లేట్>

ఆ బిట్ లోడింగ్ పూర్తి కావడానికి పేజీ కోసం వేచి కొన్ని జావాస్క్రిప్ట్ ప్రసరిస్తుంది (ఎందుకంటే $(పత్రం).సిద్ధంగా(...)) ఆపై "ఖాళీ" సాహిత్య విలువ QueryFriendlyFilters అనే రహస్య రంగంలో విలువ సెట్.

ఉదాహరణ 2: ఉపయోగించండి <XSL:అయితే> "కంటే ఎక్కువ" తనిఖీ,  "కంటే తక్కువ", మొదలైనవి.

<XSL:template match="something" xml:space="preserve">

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">ప్రస్తుత ఫిల్టర్:</వ్యవధి>
    </XSL:అయితే>

    <!– మరింత stuff ఇక్కడ జరుగుతుంది. –>

</XSL:టెంప్లేట్>

పైన స్నిప్పెట్ "ఏదో" ఎలిమెంట్ యొక్క "కౌంట్" అనే పేరుగల విశేషణము సున్నా కంటే ఎక్కువ ఉంటే చూసేందుకు తనిఖీ చేస్తుంది.  ఈ వెనుక XML ఏదో మాదిరిగా అవుతుంది:"

</ ఏదో కౌంట్ = "5">

ఉదాహరణ 3: అన్ని అంశాలు ద్వారా Iterate, j క్వెరీ కాల్స్ interspersing.

<!– అన్ని ఫిల్టర్లు ద్వారా Iterate మరియు సరైన ప్రదర్శించడానికి  లింకులు. –>
<XSL:for-each select="UserFilter">

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

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></వ్యవధి>

  <script type="text/javascript">

    $(పత్రం).సిద్ధంగా(ఫంక్షన్(){
        <XSL:టెక్స్ట్><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:టెక్స్ట్>\"<XSL:value-of select="@FilterValue"/>\"<XSL:టెక్స్ట్><![CDATA["));]]></XSL:టెక్స్ట్>
    });

  </లిపి>

</XSL:-ప్రతి కోసం>

పైన స్నిప్పెట్ అత్యంత క్లిష్టమైన మరియు దీన్ని సులభంగా మార్గాలు ఉండవచ్చు.

ఈ వెనుక XML సుమారు ఈ అనిపిస్తోంది:

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

ఈ స్నిప్పెట్ ద్వారా సంభవింప ఉంది <వాడుకరి ఫిల్టర్> నోడ్స్. 

ఇది మొదటి క్లిక్ చేసినప్పుడు పేజీ ఇప్పటికే ఒక JavaScript ఫంక్షన్ లేవనెత్తింది ఒక యాంకర్ ట్యాగ్ ప్రసరిస్తుంది, "MySubmitPage" మరియు ఒక లక్షణం విలువ వెళుతుంది <వాడుకరి ఫిల్టర్> "ID" అనే నోడ్. 

ఇది అప్పుడు పేజీ లోడ్ చెయ్యడానికి నిలబడుతుంది కొన్ని j క్వెరీ ప్రసరిస్తుంది.  ఆ j క్వెరీ నవీకరణలను FilterValue గుణం యొక్క విలువ జోడించడం ద్వారా "QueryFriendlyFilters" అనే రహస్య రంగంలో.  అన్ని వెర్రి గమనిక <XSL:టెక్స్ట్> మరియు <![CDATA[ ... ]]> వస్తువు.

అది, ఇది సహాయపడుతుంది ఆశిస్తున్నాము!

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

Lists.asmx, GetListItems మరియు ఫోల్డర్లు

నేను SharePoint భాగంగా అందించిన list.asmx వెబ్ సేవ చుట్టూ నేడు ఎవరైనా కోసం కొన్ని పరిశోధన చేస్తున్న 2010 (అంతకు ముందువి).  ఆమె రూట్ ఫోల్డర్ లో జాబితా అంశాలను పొందడానికి చేయగలిగాడు (ఉప ఫోల్డర్లను పేర్లు సహా), కానీ ఉప అంశాలు పొందుటకు కాలేదు.  నేను కొన్ని ఇంటర్నెట్ల చుట్టూ చూస్తున్న లేదు మరియు అది ఒక ఆశ్చర్యకరంగా సాధారణ ప్రశ్న.  ఇప్పటికీ, నేను సాధారణ ప్రశ్నకు ఒక మంచి సమాధానం పొందుటకు కాలేదు, "నేను ఫోల్డర్ తెలిస్తే, ఎలా నేను ఫోల్డర్ ఐటెమ్లను పొందుటకు లేదు?"  నిజాయితీ ఉండాలి, నేను కాసేపు నా స్వంతంగా ఒక అవ్ట్ దొరుకుతుందని కోరుకున్నాను నుండి నేను ఆ హార్డ్ ప్రయత్నించండి లేదు స్మైల్.

ఈ ఏర్పాటు, నేను "బ్లాగింగ్ విధానాలపై" మరియు "ఉప ఫోల్డర్లు తో కస్టమ్ జాబితా" అనే కస్టమ్ జాబితా అనే సైట్ రూపొందించినవారు.  నేను అనే ఫోల్డర్ రూపొందించినవారు:

  • సంవత్సరము 2005
  • సంవత్సరము 2006
  • సంవత్సరము 2007

నేను ఫోల్డర్ "ఇయర్ 2006" కొన్ని అంశాలు జోడించబడ్డాయి.  ఇది కనిపిస్తుంది ఏమిటి:

image

నా స్నేహితుడు సి # కోడ్ వ్రాయడం కానీ జావా ఉపయోగించని, కాబట్టి SOAP కవచ ఆమె నిజంగా అవసరం ఏమిటి.  ఆ పొందుటకు, నేను j క్వెరీ ఒక బిట్ రాశాడు మరియు తర్వాత నిజమైన HTTP సంభాషణ పొందుటకు FIDDLER ఉపయోగిస్తారు.

సంబంధించిన j క్వెరీ వార్తలు (మీరు అతికించండి / కాపీ అనుకుంటే నేను క్రింద కోడ్ డౌన్ కాపీ):

image

వారు మొదటి కీ ఒక చేర్చడాన్ని ఉంది <queryOptions> మరియు <QueryOptions> నోడ్.  రెండవ కీ అని <ఫోల్డర్> నోడ్ ఇది క్లయింట్ యాక్సెస్ కలిగిన ఒక URL ఉంది.

ఈ పొందుటకు ఇతర మార్గాలు ఉండవచ్చు, j క్వెరీ ఉపయోగించి కానీ ఈ నాకు బాగా పని.

ఇక్కడ పైన కోసం SOAP కవచ ఉంది:

<soapenv:ఎన్వలప్ xmlns:soapenv =’http://schemas.xmlsoap.org / సబ్బు / కవచ /’>                
  <soapenv:శరీరం>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / సబ్బు /’>
      <రాలునట్టి>సబ్ ఫోల్డర్లు అనుకూల జాబితా</రాలునట్టి>
      <viewFields>  
        <ViewFields>
          <FieldRef పేరు = 'శీర్షిక’ />
          <FieldRef పేరు = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <ఫోల్డర్>
http://demoserver1/Blogging దృశ్యాలు / జాబితాలు / సబ్ ఫోల్డర్లు / ఇయర్ 2006 కస్టమ్ జాబితా</ఫోల్డర్>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:శరీరం>
</soapenv:పైకాకితము>

దీనితో ఉదాహరణలు మరియు చర్చ చాలా నాకు అవసరం అన్ని విశ్వసించడానికి దారితీసింది <QueryOptions> మరియు ఒక ఫోల్డర్ పేరు పేర్కొనండి.  నాకు, నేను రెండు చుట్టు అది లోపల అవసరం <queryOptions> అలాగే ఒక పూర్తి అర్హత ఉన్న URL తెలుపుటకు <ఫోల్డర్> కాండము నుండి ఆకు వచ్చు బోడిపే.

ఇక్కడ j క్వెరీ AJAX సెటప్ వార్తలు:

$(పత్రం).సిద్ధంగా(ఫంక్షన్() {
       soapEnv = ఉంది
           "<soapenv:ఎన్వలప్ xmlns:soapenv =’http://schemas.xmlsoap.org / సబ్బు / కవచ /’> \
               <soapenv:శరీరం> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / సబ్బు /’> \
                       <రాలునట్టి>సబ్ ఫోల్డర్లు అనుకూల జాబితా</రాలునట్టి> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef పేరు = 'శీర్షిక’ /> \
                              <FieldRef పేరు = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <ఫోల్డర్>http://demoserver1/Blogging దృశ్యాలు / జాబితాలు / సబ్ ఫోల్డర్లు / ఇయర్ 2006 కస్టమ్ జాబితా</ఫోల్డర్> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:శరీరం> \
           </soapenv:పైకాకితము>";

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

అనంతంగా గూడు <DIV> టాగ్లు మరియు j క్వెరీ

ఇది ఒక oddball అంశం వంటి తెలుస్తోంది, నేను దాని గురించి నిజంగా విలువ బ్లాగింగ్ ఉండేటట్లు కాదు, కానీ ముందు నాకు నిలిపివేయబడింది ఎప్పుడూ, ఇక్కడ మేము వెళ్ళి స్మైల్

నేను ఒక శోధన నుండి కొన్ని డేటా లాగడం వెబ్ పేరు ఒక ప్రాజెక్ట్ పై పని చేస్తున్నాను, XML చివరికి XSLT ద్వారా HTML రూపాంతరం అని అప్పుడు ఒక XML సందేశాన్ని గా అప్ ప్యాకేజింగ్ మరియు.  చేరి j క్వెరీ చాలా ఉంది, ఇది ఒకటి బిట్ కొన్ని tabbing కార్యాచరణను అమలు.  మీరు ఒక టాబ్ పై క్లిక్ చేసినప్పుడు (నిజంగా, ఒక <DIV>), j క్వెరీ లేవనెత్తింది. దాచిపెట్టు() మరియు. షో() వివిధ divs న (ఈ విషయంలో దానికి postbacks ఉన్నాయి కనుక మొదటి పేజీ లోడ్ అన్ని కంటెంట్ డౌన్లోడ్).

గంటల ఒక బంచ్ క్రితం, టాబ్ మార్పిడి తర్కం ఏర్రాటికల్గా ప్రవర్తించే ప్రారంభించారు మరియు నా ట్యాబ్ల ఒక చూపించడానికి కాదు.  నేను చివరికి ఇంటర్నెట్ ఎక్స్ ప్లోరర్ నిజానికి దాన్ని ట్రాక్ (కనీసం) ఆలోచన ఆ <DIV> టాగ్లు చాలా యున్న, intended.The డెవలపర్ టూల్బార్ కంటే లోతుగా చూపిస్తుంది:

-<div ID = "Tab1Content">
  -<DIV>
    -<DIV>
      -<div ID = "Tab2Content">
        -<DIV>
           ..............................
                   </DIV>  <-చివరకు దానిని డౌన్ ఇక్కడ ముగించడమైనది చూపిస్తున్న!

ఈ విధంగా, నేను ఒక చేస్తే $("# Tab1Content").సుమారు 120 ఏకరాల భూమి(), నేను కూడా Tab2 దాచడానికి ఇష్టం మరియు నేను కూడా Tab1 లేదని నేను Tab2 ఎన్నటికీ కాలేదు.  నేను కాపీ మరియు అతికించారు కోడ్ అప్ దృశ్య స్టూడియో లోకి మరియు ఇది చక్కగా div యొక్క లైనింగ్ యొక్క అన్ని అప్ చూపించాడు, వారు చేస్తున్న చేయాలనుకున్నాము వలె, ఈ వలే:

-<div ID = "Tab1Content">
  +<DIV>
  +<DIV>
-<div ID = "Tab2Content">
  +<DIV>
  +<DIV>

నేను కాసేపు గోడ నా తల ఓడించారు మరియు వాస్తవ HTML కోడ్ ఖాళీ చాలా ఉత్పత్తి గమనించి <DIV> టాగ్లు, వంటి:

<శరీరం>

  <div ID = "Tab1Content">

    <div ID = "ROW 1" />
    <div ID = "ROW 2" />

  </DIV>

  <div ID = "Tab2Content">

    <div ID = "ROW 1" />
    <div ID = "ROW 2" />

  </DIV>

</శరీరం>

(పైన waaaaaaaaaaaay అతిగా సులభతరం ఉంది.  ఖాళీ div టాగ్లు పూర్తిగా చెల్లుతాయి. నా యొక్క కొన్ని <DIV> టాగ్లు కంటెంట్ పూర్తిగా, కానీ చాలా మంది ఉన్నారు.  నేను పరిపూర్ణత వచ్చింది నా <XSL:-ప్రతి కోసం> ఉన్నప్పుడు XSL మార్గదర్శకాలు తక్కువ రూపం div టాగ్లు వెలువరించే ఉన్నాయి:కోసం ప్రతి 'ఏ డేటా కనుగొనలేదు.  నేను అవుట్పుట్ లోకి ఒక HTML వ్యాఖ్య వచ్చింది, చూపిన విధంగా:

image

 

నేను ఆ తర్వాత, అన్ని div చక్కగా అప్ కప్పుతారు మరియు నా టాబ్ మార్పిడి పని ప్రారంభించడంతో.

ఎప్పుడు, నేను ఈ ఒక చిటికెడు లో ఎవరైనా సహాయపడుతుంది ఆశిస్తున్నాము.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

ఇంకా మరిన్ని క్వెరీ–ఒక చిత్రం ఉదాహరణ పునఃపరిమాణం

నేను ఒక క్లయింట్ యొక్క పాత అమ్మకందారుని నుండి ఒక వెబ్ భాగం వారసత్వంగా మరియు ఒక చిత్రం పరిమాణం సమస్య ఉంది.  చిత్రాలు 60 ఉండాలి×50 కానీ కొన్ని అసాధారణ కారణం, అసలు విక్రేత 42 వాటిని బలవంతంగా×42, కాబట్టి వారు squashed చూడండి:

 

మంచి చిత్రం

చెడు చిత్రం

ఇక్కడ మార్కప్ వార్తలు (కొంతవరకు సులభతరమైన):

<పట్టిక తరగతి = 'ఎక్స్టెండెడ్ క్లుప్తంగ'>
  <thead>
    <tr>
      <వ  వెడల్పు = '100′>3 మంగళవారం</వ>
    </tr>
  </thead>

  <tbody>
    <tr తరగతి = 'సూచన'>
      <td వెడల్పు = '100′>
        <స్టంప్>
          <li తరగతి = 'అధిక'>ఎత్తైన: 72&మీరు;F</li>
          <li తరగతి = 'తక్కువ'>తక్కువ: 44&మీరు;F</li>
          <li తరగతి = 'పరిస్థితి'>సన్నీ
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ వెడల్పు = '42’ ఎత్తు = '42’ alt =” />
          </li>
        </స్టంప్>
      </td>
    </tr>

  </tbody>

</పట్టిక>

మీరు గమనించండి మేము అయినప్పటికీ చిత్రం కూడా మార్గం సరైన పరిమాణం చూపిస్తుంది (60×50) అసలు విక్రేత 42 లో వచ్చింది×42.  ఎందుకు?  వెర్రియైన.

ఏమైనప్పటికి, నేను ఈ సమస్య త్వరగా మరియు సులభంగా పరిష్కారం కోరుకున్న మరియు నేను j క్వెరీ మారింది.  ట్రిక్ తగిన అన్ని గుర్తించడం జరిగింది <img> టాగ్లు.  నేను ఏ ఇతర img టాగ్లు తో గురించి చెత్త కోరుకోలేదు (అనేక ఉన్నాయి, వీటిలో).  J క్వెరీ ఈ బిట్ ట్రిక్ చేసింది:

<script type="text/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></లిపి>

<script type="text/javascript">
     $(పత్రం).సిద్ధంగా(ఫంక్షన్ () {

         $(‘లి.కండిషన్ > img ').ప్రతి(ఫంక్షన్ (సూచిక, అంశం)
           
{
             $(అంశం).css("width", "60"); 
             $(అంశం).css("height", "50");
            });
     }); // పత్రం లోడ్
</లిపి>

కోడ్ యొక్క బిట్ సేకరణ తెలుసుకుంటాడు <li> దీని తరగతి టాగ్స్ "పరిస్థితి" మరియు <img> పిల్లలు.  ఇది ఆ యొక్క అన్ని ద్వారా iterates.  ఒక మనోజ్ఞతను వంటి పని.

నేను బహుశా దీన్ని చేయడానికి కాలేదు, కానీ నేను π పరిష్కరించాడు అని unix వ్యక్తి ఒక రకమైన ఎప్పుడూ కు 18 అంకెలు PRECISION SED మరియు awk ఉపయోగించి మరియు నేను j క్వెరీ వ్యక్తి ఉంటే గాని ఆ రకమైన కాదు స్మైల్.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

మీ OK నియంత్రించండి మరియు కాన్సెల్ మీటలు

నేను వ్రాసిన ఈ ఆర్టికల్ ఒక సమయంలో తిరిగి, నేను సమయంలో నా బ్లాగ్ నుండి లింక్ లేదు వంటి కానీ కనిపిస్తుంది, ఇక్కడ వెళ్తాడు:

image

ఈ వ్యాసం ఆమె రద్దు క్లిక్ చేసినప్పుడు యూజర్ OK క్లిక్ మరియు వేరే పేజీ ఉన్నప్పుడు newform.aspx ఒక పేజీ దారి మళ్ళించడానికి బలవంతం వివరిస్తుంది.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin

త్వరిత చిట్కా: MOSS పబ్లిషింగ్ పేజీలకు j క్వెరీ జోడించడం

J క్వెరీ ఉపయోగించి MOSS publising పేజీలు మెరుగుపరుస్తూ ఉన్నప్పుడు, నేను ఈ క్రింది వేగం bump హిట్:

Server Error in ‘/’ అనువర్తనం.


పార్సర్ లోపం

వర్ణన: లోపం ఈ అభ్యర్థనను సేవలు అవసరం ఒక వనరు యొక్క పార్సింగ్ సంభవించింది. కింది నిర్దిష్ట పదనిరూపణ లోపం వివరాలు సమీక్షించి తగిన మీ మూలం ఫైల్ మార్చండి.

పార్సర్ ఎర్రర్ మెసేజ్: మాత్రమే కంటెంట్ నియంత్రణలు కంటెంట్ నియంత్రణలు కలిగి కంటెంట్ పేజీ నేరుగా అనుమతించబడతాయి.

మూల దోషం:

 
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 ఫ్రేమ్వర్క్ సంచిక:2.0.50727.4927; ASP.NET సంచిక:2.0.50727.4927

దాన్ని పరిష్కరించడానికి తగినంత సులభం (h / t నా సహోద్యోగి కు, ఉదయ్ Ethirajulu).  చూపిన విధంగా j క్వెరీ కోడ్ "PlaceHolderAdditionalPageHead" లోపల నివసించే ఆ నిర్ధారించుకోండి:

<కాలసర్పం:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">

<లిపి

    type="text/javascript"

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

</లిపి>

<script type="text/javascript">

  $(పత్రం).సిద్ధంగా(ఫంక్షన్() {

   // బ్రిలియంట్ j క్వెరీ stuff ఇక్కడ వెళ్తాడు.

   });

</లిపి>

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin