Tag Archives: jQuery

XSLT და jQuery ნიმუშები

მე არ აკეთებს ბევრი of XSLT და jQuery და ეგონა, მინდა იზიარებენ რამდენიმე snippets, რომ სხვები შეიძლება სასარგებლო მომავალში.

მაგალითი 1: გადასცემს მარტივი JavaScript / jQuery წელს XSLT:

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

  <!– ცარიელი out შეკითხვის მეგობრული ფილტრებით ფარული სფეროში –>
  <script type="text/javascript">
    $(დოკუმენტი).მზად(ფუნქცია(){
      $("#QueryFriendlyFilters").val("empty");
    });
  </დამწერლობის>

</XSL:template>

ცოტა emits რამდენიმე JavaScript რომ ელოდება გვერდი დასრულება დატვირთვა (გამო $(დოკუმენტი).მზად(...)) შემდეგ კი ადგენს ღირებულება ფარული ველში QueryFriendlyFilters რომ ლიტერატურული ღირებულება "ცარიელი".

მაგალითი 2: გამოყენება <XSL:თუ> რათა შეამოწმოს "მეტია",  "ნაკლები", და ა.შ..

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

  <div id="fdcAllFilters">
 
    <XSL:if test="@Count>0">
      <span class="fdcFilterLabel">აქტუალური ფილტრებით:</span>
    </XSL:თუ>

    <!– მეტი პერსონალი აქ ხდება. –>

</XSL:template>

ზემოთ snippet ამოწმებს თუ ატრიბუტებს, სახელწოდებით "იმედი" და "რაღაც" ელემენტი მეტია ნულოვანი.  XML უკან ეს იქნება რაღაც:"

<რაღაც Count = "5" />

მაგალითი 3: Iterate მთელი ელემენტები, interspersing jQuery ზარები.

<!– Iterate მთელი ფილტრებით და არიან სწორი  ბმულები. –>
<XSL:for-each select="UserFilter">

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

  <span class="fdcFilterLabel"><XSL:value-of select="@FilterValue"/></span>

  <script type="text/javascript">

    $(დოკუმენტი).მზად(ფუნქცია(){
        <XSL:ტექსტი><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></XSL:ტექსტი>\"<XSL:value-of select="@FilterValue"/>\"<XSL:ტექსტი><![CDATA["));]]></XSL:ტექსტი>
    });

  </დამწერლობის>

</XSL:for-თითოეული>

ზემოთ snippet არის ყველაზე რთული და შეიძლება იყოს ადვილი გზა ამის გაკეთება.

XML უკან გამოიყურება დაახლოებით ასე:

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

ეს snippet არის iterating მეშვეობით <მომხმარებელი ფილტრაციის> კვანძების. 

ეს პირველი emits წამყვანმა tag, რომ როდესაც დაწკაპავთ აღვიძებს JavaScript ფუნქცია, რომელიც უკვე გვერდზე, "MySubmitPage" და გადის ღირებულება ატრიბუტი ჩართულია <მომხმარებელი ფილტრაციის> კვანძის სახელწოდებით "ID". 

ეს მაშინ emits ზოგიერთი jQuery, რომ ელოდება გვერდზე ჩატვირთვა.  სწორედ jQuery განახლებები ფარული სფეროში სახელწოდებით "QueryFriendlyFilters" დამატებით ღირებულებას FilterValue ატრიბუტი.  შენიშვნა ყველა გიჟები <XSL:ტექსტი> და <![CDATA[ ... ]]> პერსონალის.

ეს არის ის, იმედი მაქვს, ეს ეხმარება!

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

Lists.asmx, GetListItems და დასტების

მე აკეთებდა ზოგიერთი კვლევის ვინმე დღეს დაახლოებით list.asmx ვებ სერვისი, როგორც ნაწილი SharePoint 2010 (და უფრო ადრე).  ის იყო შეუძლია მიიღოს სია ნივთები ძირეული საქაღალდე (მათ შორის სახელების საქვეუწყებო ფოლდერები), მაგრამ ვერ მოახერხა ნივთები ქვეპუნქტით საქაღალდეები.  მე რაღაც ეძებს გარშემო internets და ეს გასაკვირი საერთო კითხვაზე.  თუმცა, მე ვერ კარგი პასუხი მარტივი კითხვა, "თუ ვიცი, ფოლდერში, როგორ მივიღებ ნივთები ფოლდერი?"  მართალი გითხრათ, მე არ ცდილობენ ყველა რომ მძიმე წლიდან მე მინდოდა ტექსტური ამ ერთი ჩემს ხნით Smile.

იმისათვის ეს ყველაფერი, მე შეიქმნა საიტი სახელწოდებით "Blogging სცენარი" და საბაჟო სიაში დასახელებული "მორგებული სია Sub ტიპი".  მე მაშინ შექმნილი საქაღალდეები დაასახელა:

  • წელი 2005
  • წელი 2006
  • წელი 2007

მე დასძინა რამდენიმე საკითხი უნდა დირექტორია "2006 წელი".  ეს არის რას ჰგავს:

image

ჩემი მეგობარი არ არის წერა C # კოდი არამედ გამოყენებით ჯავის, ასე საპონი კონვერტში იყო ის, რაც მან ნამდვილად საჭიროა.  იმისათვის რომ, რომ, დავწერე ცოტა jQuery და შემდეგ გამოიყენება fiddler მიიღოს ფაქტობრივი HTTP საუბარი.

აი შესაბამისი jQuery (მე გადაწერა კოდი ქვემოთ ქვემოთ, თუ გინდათ ასლი / პასტა):

image

ისინი უპირველეს უნდა შეიცავდეს ორივე <queryOptions> და <QueryOptions> კვანძის.  მეორე გასაღები იმაში მდგომარეობს, რომ <Folder> კვანძის არის URL, კლიენტს ხელი მიუწვდება.

ამისთვის შეიძლება იყოს სხვა გზები მიიღოს ამ, მაგრამ ეს კარგად მუშაობდა ჩემთვის, როდესაც გამოყენებით jQuery.

აქ არის საპონი კონვერტში ზემოთ:

<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’>                
  <soapenv:Body>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / საპნის /’>
      <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი>
      <viewFields>  
        <ViewFields>
          <FieldRef სახელი = 'სათაური’ />
          <FieldRef სახელი = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Body>
</soapenv:კონვერტი>

უამრავი მაგალითი და დისკუსია გარშემო გამიყვანა, რომ ყველა მე უნდა იყო <QueryOptions> და დააკონკრეტა საქაღალდე სახელი.  ჩემთვის, მე უნდა ორივე გადატანა შიგნით <queryOptions> ისევე როგორც დააკონკრეტა მთლიანად კვალიფიციური URL for <Folder> კვანძის.

აი jQuery AJAX კონფიგურაცია:

$(დოკუმენტი).მზად(ფუნქცია() {
       იყო soapEnv =
           "<soapenv:კონვერტი xmlns:soapenv =’http://schemas.xmlsoap.org / საპნის / კონვერტში /’> \
               <soapenv:Body> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / საპნის /’> \
                       <ფოთლოვანი>საბაჟო სიაში Sub საქაღალდეები</ფოთლოვანი> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef სახელი = 'სათაური’ /> \
                              <FieldRef სახელი = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging სცენარი / სიებში / საბაჟო სიაში Sub საქაღალდეები / 2006 წელი</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Body> \
           </soapenv:კონვერტი>";

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

უსასრულოდ Nesting <div> Tags და jQuery

ეს ჩანს, ასეთი oddball თემას, მე არ ვარ დარწმუნებული, რომ ეს ნამდვილად ღირს ბლოგინგის შესახებ, მაგრამ ეს არ შეუწყვეტია მე წინაშე, ასე რომ აქ ჩვენ Smile

მე შემუშავების პროექტზე, სადაც მე უბიძგებენ გარკვეული მონაცემების ძებნის, შეფუთვის იგი დაყოფილია XML გაგზავნა და შემდეგ რომ XML საბოლოოდ გადაკეთდა HTML მეშვეობით XSLT.  აქ არის ბევრი jQuery ჩართული, ერთი ცოტა რომელიც ახორციელებს რამდენიმე tabbing ფუნქცია.  როდესაც თქვენ დააჭირეთ tab (ნამდვილად, a <div>), jQuery აღვიძებს. დამალვა() და. შოუ() სხვადასხვა divs (საწყის გვერდზე დატვირთვის იწერს ყველა შინაარსი ასე რომ არ არსებობს postbacks ამ შემთხვევაში).

რამოდენიმე საათის წინ, tab გადართვის ლოგიკა დაიწყო მოიქცევა erratically და ეს არ აჩვენებს ერთი ჩემი ჩანართი.  მე საბოლოოდ დააფიქსირა, მას იმ ფაქტს, რომ ინტერნეტ explorer (სულ მცირე) ეგონა, რომ <div> tags წყობილი შორს, რამდენადაც უფრო ღრმა, ვიდრე intended.The დეველოპერი პანელი იმას აჩვენებენ:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-საბოლოოდ აჩვენებს დაიხურა ყველა გზა ქვემოთ აქ!

ასე რომ,, თუ წავიდოდი $("# Tab1Content").დამალვა(), მინდა ასევე მალავს Tab2 და ვერც კი ნახოთ Tab2 თუ არ ასევე აჩვენებს Tab1.  მე გადაწერა და გაკრული კოდი დაყოფილია ვიზუალური სტუდია და ეს აჩვენა ყველა div-ს უგულებელყოფა up ლამაზად, ისევე, როგორც ისინი უნდა აკეთებს, ეძებს როგორც ამ:

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

მე სცემეს ჩემი უფროსი წინააღმდეგ კედელზე ხნით და შენიშნა, რომ ფაქტობრივი HTML კოდი იყო მომტანი ბევრი ცარიელი <div> tags, მოსწონს:

<სხეულის>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</სხეულის>

(აღნიშნული waaaaaaaaaaaay oversimplified.  ცარიელი div tags აბსოლუტურად ძალაშია. ზოგიერთი ჩემი <div> tags იყო სავსე შინაარსი, მაგრამ კიდევ ბევრი რამ არ იყო.  ჩამოვედი რეალიზაციის, რომ ჩემი <XSL:for-თითოეული> დირექტივა ასხივებენ მოკლე ფორმა div tags როდესაც XSL:for-თითოეული არ "აღმოაჩინა მონაცემები.  მე იძულებული HTML კომენტარის შევიდა გამომავალი, როგორც ნაჩვენებია:

image

 

მას შემდეგ, რაც გავაკეთე, რომ, ყველა div ის გაფორმებულია ლამაზად და ჩემი tab ჩართვის მუშაობა დაიწყო.

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს ეხმარება ვინმე pinch.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

ჯერ jQuery–ზომის შეცვლა გამოსახულების მაგალითი

მე მემკვიდრეობით ვებ ნაწილი კლიენტების წლის გამყიდველი და მას აქვს სურათის ზომის პრობლემა.  ფოტოებს თან უნდა 60×50 მაგრამ გარკვეული უცნაური მიზეზი, ორიგინალური გამყიდველი აიძულა მათ 42×42, ასე რომ ისინი squashed:

 

კარგი გამოსახულება

ცუდი გამოსახულება

აი markup (გარკვეულწილად გამარტივდა):

<მაგიდა კლასის = 'გახანგრძლივებული მსოფლმხედველობის ">
  <thead>
    <tr>
      <ე  ტელეკომპანია '100′>3 სამშაბათი</ე>
    </tr>
  </thead>

  <tbody>
    <tr კლასის = 'პროგნოზს ">
      <td width = '100′>
        <ul>
          <li class = 'მაღალი'>მაღალი: 72&deg;F</li>
          <li class = "დაბალი">დაბალი: 44&deg;F</li>
          <li class = "მდგომარეობაშია">მზიანი
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ ტელეკომპანია '42’ სიმაღლე = '42’ alt =” />
          </li>
        </ul>
      </td>
    </tr>

  </tbody>

</მაგიდა>

თქვენ აღვნიშნო, რომ მიუხედავად იმისა, გზა იმიჯი თავად გვიჩვენებს შესაბამისი განზომილების (60×50) ორიგინალური გამყიდველი აიძულა იგი 42×42.  რატომ?  Crazy.

ყოველ შემთხვევაში, მინდოდა ეს სწრაფია და ადვილი გამოსავალი ამ საკითხს და მე აღმოჩნდა jQuery.  შეასრულა იყო იქნებიან ყველა შესაბამისი <img> tags.  მე არ მინდა, რომ Muck შესახებ ნებისმიერ სხვა img tags (რომელიც არსებობს მრავალი).  ეს ცოტა jQuery გააკეთა შეასრულა:

<script type="text/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></დამწერლობის>

<script type="text/javascript">
     $(დოკუმენტი).მზად(ფუნქცია () {

         $(‘li.condition > img ').ყოველ(ფუნქცია (ინდექსი, პუნქტის)
           
{
             $(პუნქტის).css("width", "60"); 
             $(პუნქტის).css("height", "50");
            });
     }); // on დოკუმენტი დატვირთვა
</დამწერლობის>

ცოტა კოდი პოულობს კრებული <li> tags რომლის კლასი არის "მდგომარეობაში" და <img> ბავშვები.  ეს მაშინ iterates მეშვეობით ყველა რომ.  მუშაობდა როგორც ხიბლი.

მე შეიძლება ალბათ გამარტივებაში ეს, მაგრამ მე არასდროს ყოფილა ასეთი UNIX ბიჭი რომ გადაწყდეს π to 18 ციფრები სიზუსტით გამოყენებით SED და awk და მე არ ვარ ასეთი სახის თუ jQuery ბიჭი ან Smile.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

აღებას თქვენი OK და უარი Buttons

I wrote ამ მუხლის a while back, მაგრამ ჰგავს მე არ უკავშირებენ, რომ იგი ჩემი დღიური დროს, ასე რომ აქ გადის:

image

ეს სტატია აღწერს, თუ როგორ უნდა აიძულოს newform.aspx გადამისამართება ერთ გვერდზე, როდესაც მომხმარებელი იმოქმედებს OK და სხვადასხვა გვერდზე, როდესაც იგი იმოქმედებს გააუქმოს.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

სწრაფი რჩევა: დამატება jQuery to MOSS გამომცემლობა გვერდები

როდესაც გაძლიერების MOSS publising გამოყენებული გვერდები jQuery, მე მოხვდა შემდეგ სიჩქარე bump:

Server Error in ‘/’ განაცხადის.


Parser შეცდომა

აღწერა: შეცდომა განმავლობაში დამუშავება რესურსი საჭირო მომსახურებისთვის ამ მოთხოვნას. გთხოვთ განიხილავს შემდეგ სპეციფიკურ გარჩევის შეცდომა დეტალები და ცვლილებები თქვენი წყარო ფაილი სათანადოდ.

Parser Error Message: Only Content controls are allowed directly in a content page that contains Content controls.

Source Error:

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

Source File: /_catalogs/masterpage/KCC_FacultyMember.aspx    ხაზი: 12


Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927

It was easy enough to fix (h/t to my colleague, Uday Ethirajulu).  Be sure that the jQuery code lives inside the “PlaceHolderAdditionalPageHead” as shown:

<ვერხვი:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">

<დამწერლობის

    type="text/javascript"

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

</დამწერლობის>

<script type="text/javascript">

  $(დოკუმენტი).მზად(ფუნქცია() {

   // Brilliant jQuery stuff goes here.

   });

</დამწერლობის>

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin