คลังเก็บหมวดหมู่: jQuery และ SharePoint

เอาชนะปัญหาน่ารำคาญ ด้วย Url แบบย่อในเปิด SharePoint อย่างรวดเร็ว

อยากจะเพิ่มการเชื่อมโยงการนำเปิดใช้งานด่วนในวันอื่น ๆ และ SharePoint บอกฉัน:

image

รุ่นข้อความล้วนที่เป็น:

ให้แน่ใจว่า URL ถูกต้อง และเริ่มต้น ด้วยทั้งอักขระที่ถูกต้อง (เครื่องหมายเลข (#) หรือเครื่องหมายทับไปข้างหน้า (/)) หรือโพรโทคอลที่สนับสนุนถูกต้อง (ตัวอย่างเช่น, ' http://’, ' https://’, ' ไฟล์://’, ' ftp://’, ' mailto:’, ' ข่าว:’).

"Blech และ pox!"ผมพูด.

วิธีแก้ปัญหานี้คือการ ใช้ JavaScript เพื่อค้นหาการเชื่อมโยงรู้จักในการเปิดใช้งานด่วน และแทนลักษณะการทำงานของ.

การทดสอบนี้, เพิ่มการเชื่อมโยงใหม่ไซต์ทดสอบ thusly:

image

ใช้ jQuery. เมื่อต้องการแก้มัน, บาง JavaScript และ jQuery ไปหน้าโดยใช้เทคนิคของคุณชื่นชอบ และ มีบรรทัดของรหัสนี้:

 

$(เอกสาร).พร้อม( ฟังก์ชัน () {

    $("การ:ประกอบด้วย('ทดสอบ URL แทน')").คลิก(ฟังก์ชัน () { การแจ้งเตือน("คลิกเปลี่ยนลักษณะการทำงาน!"); เที่ยวกลับ เท็จ;});

});

และ คุณลุงบ๊อบ.

ค้นหาตัว jQuery ทุก <การ> แท็กที่มีชื่อ "ทดสอบ URL แทน". คุณอาจต้องการค้นหาเพลงที่เชื่อมโยงของคุณและเช่น.

.Click(ฟังก์ชัน() เพียง SharePoint จะทำเมื่อผู้ใช้คลิกแทน. ให้แน่ใจว่า คุณ "ส่งคืนเท็จ" หรือ อื่น ๆ จะทำสิ่งของ และลองสิ่ง href เกินไป, ที่ไม่ได้เกือบแน่นอนเป้าหมายของคุณ.

นี้เสร็จ และทดสอบใน SharePoint ออนไลน์แต่ควรทำงานที่ดีใน 2010 และเร็วเกินไป.

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ง่าย และรวดเร็ว: แก้ "พารามิเตอร์ URL ไม่ถูกต้อง” ปัญหากับ UpdateListItems lists.asmx

เมื่อทำงานกับ UpdateListItems ผ่าน lists.asmx, ง่ายต่อการสร้างข้อผิดพลาด:

พารามิเตอร์ URL ไม่ถูกต้อง.

ผู้ให้บริการประกอบด้วยคำสั่งหรือค่าไม่ถูกต้อง. กรุณาตรวจสอบ URL อีกครั้ง.

คุณจะได้รับข้อผิดพลาดนี้เมื่อคุณลืมที่จะรวมรหัสในการรายการของฟิลด์การปรับปรุงได้  นี้, ชอบมากของ SP เว็บบริการเหล่านี้, เป็นบิต counterintuitive เนื่องจากจะต้องใส่ ID ในแอตทริบิวต์ ID ของ <วิธีการ> องค์ประกอบการ  และคุณไม่ปรับปรุง ID และไม่ต้องการแรก.

งานนี้ซองสบู่:

<soapenv:Xmlns ซองจดหมาย:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:เนื้อความ>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <การปรับปรุง>                     
         <ชุด OnError ="ต่อไป">
          <รหัสวิธี ="1" คำสั่ง ="ปรับปรุง">
            <ฟิลด์ชื่อ ="CooperativeLock">ล็อก!</ฟิลด์>
            <ฟิลด์ชื่อ ="ID">1</ฟิลด์>
          </วิธีการ>
        </ชุด>                     
        </การปรับปรุง>                
      </UpdateListItems>             
  </soapenv:เนื้อความ>         
</soapenv:ซองจดหมาย>

ถ้าคุณถอดเสื้อผ้าออกอ้างอิงฟิลด์รหัส แล้วคุณจะได้รับข้อความ "พารามิเตอร์ URL ไม่ถูกต้อง" น่ารำคาญ.

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

 

คนดีของแคใน JavaScript

[TL;รุ่น DR: ใช้คุกกี้เพื่อเก็บผลลัพธ์ของการเรียกต่างเวลา; แสดงผลผ่านมาต่างเวลาเรียกทันที และตรวจสอบได้หลังจากโหลดหน้า]

ฉันได้ทำงานบนไซต์ SharePoint ของอินทราเน็ตสำหรับไคลเอนต์ซึ่ง, ในสิ่งอื่น ๆ, เป็นสุกใสรองนำตัวเลือกที่เมนูจัดการผ่านรายการที่กำหนดเองเก่าปกติ  ความคิดเป็นว่า ไคลเอนต์ได้รับการควบคุมเมนูของเว็บไซต์ "ของ" โดยไม่กระทบหรือรับผลกระทบจากการนำโลกดับโดย.

(มีทุกสิ่งอย่างเหลือเชื่อ subversive เกี่ยวกับการเพิ่ม CEWP ที่ชี้ไปยังแฟ้ม HTML ที่โหลด CSS และ JS บางพื้นฐานเปลี่ยนเกือบทุกอย่างเกี่ยวกับการทำงานของเว็บไซต์... แต่ที่ใช้สำหรับการลงรายการบัญชีอื่น)

รหัสสำหรับนี้ง่ายสวย:

  • รอหน้าเสร็จสิ้นการโหลด และทำต่างเวลาการเรียกโหลดรายการเมนูจากรายการโดยใช้ส่วนที่เหลือ หรือ lists.asmx หรืออะไรก็ตาม
  • ใช้ jQuery, ใส่พวงแบบไดนามิกหาก <li>ของภายในเป็นหลัก <ul> (ดูคริสเตียน Pinder บทที่นี่สำหรับคำอธิบายพี่ tecnnique นี้)
  • ใช้ CSS ในการทำทั้งหมดการจัดรูปแบบ
  • กำไร!

ที่นี่จุดเจ็บคือทุกครั้งที่คนฮิตหนึ่งหน้าของเว็บไซต์, เบราว์เซอร์ของผู้ใช้ได้ถึงจะได้รับสินค้าจากรายการ  เมื่อเดฟสมบูรณ์ และทดสอบ ได้พิสูจน์สิ่งที่มั่นคง และสมบูรณ์, สายนี้มีความจำเป็นมากกว่า 99% เวลาตั้งแต่เมนูไม่ค่อยเปลี่ยนแปลง  มีผล UI แปลกซึ่งมีทั่วไปในโลกใหม่นี้กล้าไฮเปอร์ ajaxy เว็บไซต์ – ทำหน้า และหลังจากนั้น ไม่เมนูแสดง  ภาพกระตุก และรบกวนในมุมมองของฉันได้  และภาพกระตุก. ดังนั้น, แค 

ฉันปรับเปลี่ยนแบบตรรกะ thusly:

  • หาคุกกี้ในเบราว์เซอร์ที่ประกอบด้วยเมนูล่าสุดอ่านว่า
    • ถ้าพบ, แสดงทันที  ไม่รอหน้าเสร็จสิ้นการโหลด  (คุณต้องแน่ใจว่าวาง HTML ของคุณเชิญที่นี่, แต่ไม่ยาก).
  • รอหน้าเสร็จสิ้นการโหลด และทำต่างเวลาการเรียกโหลดรายการเมนูจากรายการโดยใช้ส่วนที่เหลือ หรือ lists.asmx หรืออะไรก็ตาม
  • เปรียบเทียบสิ่งที่ผมมีกับใคร
    • ถ้ามันตรงกับ, หยุด
    • มิฉะนั้น, ใช้ jQuery, ใส่พวงแบบไดนามิกหาก <li>ของในตัว <ul>
  • ใช้ CSS ในการทำทั้งหมดการจัดรูปแบบ
  • กำไร!

บางท่านจะบอกว่า, "เฮ้! ไม่มีจะจริงแคที่นี่เนื่องจากคุณกำลังอ่านเมนูต่อไป ทีเดียว.”  และคุณขวา – ฉันกำลังไม่นำเซิร์ฟเวอร์ใด ๆ ที่ทำลาย  แต่เนื่องจากการโทรอยู่ต่างเวลา และเกิดขึ้นหลังจากหน้าของเริ่มต้น ส่วนของข้อมูลของ HTML เต็มสภาพ, "รู้สึก" มากกว่าตอบสนองต่อผู้ใช้  เมนูทำสวยมากวาดหน้า  ถ้าเมนูเกิดขึ้นกับการเปลี่ยนแปลง, ผู้ใช้จะต้องมีภาพกระตุกใหม่วาดของเมนู, แต่เท่าที่เวลาหนึ่ง.

มีบางวิธีจะทำให้การแคนี้มีประสิทธิภาพ และช่วยออกเซิร์ฟเวอร์ในเวลาเดียวกัน:

  • ใส่ในกฎที่ว่า "แคชคุกกี้" ถูกต้องอย่างน้อย 24 ชั่วโมงหรือเวลาอื่น ๆ. ตราบใดที่มีคุกกี้ไม่หมดอายุ, ใช้ snapshot ของเมนูของคุกกี้ และไม่เคยตีเซิร์ฟเวอร์.

ดี...ที่ทั้งหมดที่มาถึงใจขณะนี้ :). 

ถ้าใครมีความคิดฉลาดใด ๆ ที่นี่ ฉันจะรักรู้ว่าพวกเขา.

และสุดท้าย – สามารถใช้เทคนิคนี้สำหรับสิ่งอื่น ๆ  ไคลเอนต์นี้แล้วจำนวนข้อมูลขับเคลื่อนกิจกรรมต่าง ๆ หน้า, หลายของพวกเขาเปลี่ยนแปลงค่อนข้างบ่อย (เช่นสัปดาห์ละหนึ่งครั้งหรือเดือนละครั้ง).  ถ้าคุณกำหนดเป้าหมายพื้นที่เฉพาะของฟังก์ชัน, คุณสามารถให้ UI ที่ตอบสนองมากขึ้น โดยดึงเนื้อหาจากเก็บคุกกี้ในเครื่อง และแสดงผลทันที  มันรู้สึกเร็วต่อผู้ใช้แม้ว่าคุณกำลังไม่บันทึกเซิร์ฟเวอร์ใด ๆ รอบ  คุณ สามารถ บันทึกวงจรเซิร์ฟเวอร์ โดยการตัดสินใจในบางเงื่อนไขและทริกเกอร์จะทำให้แคภายในคุกกี้  นั่นคือในสถานการณ์ทั้งหมด และสิ่งที่แสนยาวนานและสนุกมากที่สุด :). 

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

XSLT และ jQuery Samples

ฉันได้รับทำมาก XSLT jQuery และความคิดที่ฉันจะแบ่งปันส่วนย่อยของโค้ดบางอย่างที่ผู้อื่นอาจพบว่ามีประโยชน์ในอนาคต.

ตัวอย่าง 1: คายวิ JavaScript / jQuery ใน XSLT:

<xsl:แม่แบบตรง = "สิ่ง" xml:เนื้อที่ = "รักษา">

  <!– ว่างออกจากแบบสอบถามเป็นมิตรกรองเขตข้อมูลที่ซ่อนอยู่ –>
  <สคริปต์ชนิด = "ข้อ ความ/javascript">
    $(เอกสาร).พร้อม(ฟังก์ชัน(){
      $("#QueryFriendlyFilters").val("ว่างเปล่า");
    });
  </สคริปต์>

</xsl:แม่แบบ>

บิตที่ emits JavaScript บางที่รอหน้าเพื่อเสร็จสิ้นการโหลด (เนื่องจากการ $(เอกสาร).พร้อม(…)) แล้ว ชุดค่าของเขตข้อมูลที่ซ่อนอยู่ชื่อว่า QueryFriendlyFilters ค่าสัญพจน์ "ว่างเปล่า".

ตัวอย่าง 2: ใช้ <xsl:ถ้า> การตรวจสอบ "มากกว่า",  "น้อยกว่า", ฯลฯ.

<xsl:แม่แบบตรง = "สิ่ง" xml:เนื้อที่ = "รักษา">

  <div id = "fdcAllFilters">
 
    <xsl:ถ้า test="@Count>0">
      <ขยายคลาส = "fdcFilterLabel">ตัวกรองปัจจุบัน:</ขยาย>
    </xsl:ถ้า>

    <!– สิ่งที่เพิ่มเติมเกิดขึ้นที่นี่. –>

</xsl:แม่แบบ>

คำสั่งย่อยด้านบนตรวจสอบเพื่อดูว่าแอตทริบิวต์ที่มีชื่อว่า "นับ" ขององค์ประกอบ "สิ่ง" มากกว่าศูนย์  XML เบื้องหลังนี้จะเป็นสิ่งที่ต้องการ:”

<สิ่ง Count = "5" />

ตัวอย่าง 3: ทำซ้ำผ่านองค์ประกอบทั้งหมด, interspersing jQuery สาย.

<!– ทำซ้ำผ่านตัวกรองทั้งหมด และแสดงถูกต้อง  การเชื่อมโยง. –>
<xsl:แต่สำหรับละเลือก = "UserFilter">

  <คลาสที่ = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</การ>

  <ขยายคลาส = "fdcFilterLabel"><xsl:ค่าของ select="@FilterValue"/></ขยาย>

  <สคริปต์ชนิด = "ข้อ ความ/javascript">

    $(เอกสาร).พร้อม(ฟังก์ชัน(){
        <xsl:ข้อความ><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></xsl:ข้อความ>\"<xsl:ค่าของ select="@FilterValue"/>\"<xsl:ข้อความ><![CDATA["));]]></xsl:ข้อความ>
    });

  </สคริปต์>

</xsl:แต่สำหรับละ>

ส่วนย่อยด้านบนสุดซับซ้อน และอาจมีวิธีทำได้ง่ายขึ้น.

XML เบื้องหลังนี้มีลักษณะประมาณดังนี้:

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

คำสั่งย่อยนี้จะวนผ่าน <UserFilter> โหนด 

Emits จุดยึดก่อนแท็กที่เมื่อคลิกแล้ว JavaScript ฟังก์ชันที่มีอยู่แล้วในหน้าการเรียกใช้เมธ, "mySubmitPage" และการส่งผ่านค่าของแอตทริบิวต์ในการ <UserFilter> โหนดที่ชื่อว่า "ID" 

มัน emits jQuery บางที่รอหน้าเพื่อโหลดแล้ว  JQuery ที่ปรับปรุงเขตข้อมูลที่ซ่อนชื่อ "QueryFriendlyFilters" โดยการเพิ่มค่าของแอตทริบิวต์ FilterValue  หมายเหตุเมาทั้งหมด <xsl:ข้อความ> และ <![CDATA[ … ]]> สิ่งที่.

แค่นี้, หวังว่า จะช่วย!

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

Lists.asmx, GetListItems และโฟลเดอร์

ฉันได้ทำงานวิจัยบางบุคคลวันนี้รอบบริการเว็บ list.asmx ให้เป็นส่วนหนึ่งของ SharePoint 2010 (และรุ่นก่อนหน้า).  เธอได้รับในรายการที่โฟลเดอร์ราก (รวมทั้งชื่อของ sub-folders), แต่ไม่ได้รับสินค้าใน sub-folders  ไม่บางอย่างรอบคอบในการ internets และคำถามทั่วไปอย่างแปลกใจ  ยัง, ฉันไม่สามารถได้รับคำตอบสำหรับคำถามที่วิดี, "ถ้ารู้ว่าโฟลเดอร์, ฉันรับสินค้าในโฟลเดอร์?”  จะซื่อสัตย์, ไม่ได้พยายามทั้งหมดที่หนักเนื่องจากผมได้ต้องการรูปหนึ่งนี้ออกด้วยตัวเองสำหรับในขณะ ยิ้ม.

การตั้งค่านี้, ไซต์มีชื่อว่า "สถานการณ์ของบล็อก" และรายการแบบกำหนดเองที่ชื่อว่า "กำหนดเองรายการกับโฟลเดอร์ย่อย" สร้าง  สร้างโฟลเดอร์ชื่อแล้ว:

  • ปี 2005
  • ปี 2006
  • ปี 2007

เพิ่มเพียงไม่กี่รายการไปที่โฟลเดอร์ "ปี 2549"  นี่คือสิ่งที่มีลักษณะเหมือน:

image

เพื่อนของฉันไม่ได้เขียน C# โค้ด แต่แทนที่จะ ใช้ Java, ดังนั้น ละครซองจดหมายถูกอะไรเธอจริง ๆ ต้อง  รับที่, ฉันเขียนบิตของ jQuery และใช้ fiddler รับสนทนา HTTP ที่แท้จริงแล้ว.

นี่คือ jQuery เกี่ยวข้อง (คัดลอกรหัสลงด้านล่างหากคุณต้องการคัดลอก/วาง):

image

พวกเขาแรกคีย์คือการ รวมทั้งสองแบบ <queryOptions> และ <QueryOptions> โหนด  ปุ่มที่สองคือที่ <โฟลเดอร์> โหนดคือ URL ที่ไคลเอ็นต์เข้า.

อาจจะมีวิธีอื่น ๆ ที่ได้รับนี้, แต่นี้ทำงานได้ดีสำหรับฉันเมื่อใช้ jQuery.

นี่คือละครซองจดหมายสำหรับด้านบน:

<soapenv:Xmlns ซองจดหมาย:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:เนื้อความ>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>รายการที่กำหนดเองกับโฟลเดอร์ย่อย</listName>
      <viewFields>  
        <ViewFields>
          <ชื่อ FieldRef =' ชื่อเรื่อง’ />
          <ชื่อ FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <โฟลเดอร์>
http://demoserver1/บล็อก รายการสถานการณ์/รายการ/กำหนดเองกับ Sub โฟลเดอร์/ปี 2549</โฟลเดอร์>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:เนื้อความ>
</soapenv:ซองจดหมาย>

ตัวอย่างและการอภิปรายรอบนี้มากมายทำให้ฉันเชื่อว่า ทั้งหมดที่ต้องแก้ไข <QueryOptions> และระบุชื่อโฟลเดอร์  สำหรับฉัน, ฉันต้องการทั้งสองตัดนั้นภายใน <queryOptions> ตลอดจนระบุ URL ที่ครบถ้วนสำหรับการ <โฟลเดอร์> โหนด.

นี่คือการตั้งค่าของ jQuery AJAX:

$(เอกสาร).พร้อม(ฟังก์ชัน() {
       var soapEnv =
           "<soapenv:Xmlns ซองจดหมาย:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:เนื้อความ> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>รายการที่กำหนดเองกับโฟลเดอร์ย่อย</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <ชื่อ FieldRef =' ชื่อเรื่อง’ /> \
                              <ชื่อ FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <โฟลเดอร์>http://demoserver1/Blogging รายการสถานการณ์/รายการ/กำหนดเองกับ Sub โฟลเดอร์/ปี 2549</โฟลเดอร์> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:เนื้อความ> \
           </soapenv:ซองจดหมาย>";

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

Lists.asmx, GetList และ "ค่าไม่สามารถเป็น null”

พบวันนี้ที่ GetList() วิธีการใน lists.asmx มีบริการเว็บเรียกระมัดระวัง หรือมีแนวโน้มที่จะโยนความลึกลับยกเว้น "ค่าไม่สามารถเป็น null" (และที่จะสมมติว่า คุณสามารถเรียกดูผ่านข้อผิดพลาดทั่วไปยิ่งแย่ลง, "ข้อยกเว้นของชนิด ' Microsoft.SharePoint.SoapServer.SoapServerException’ เกิดขึ้น")  โดยเฉพาะอย่างยิ่ง, พบว่า คุณไม่สามารถให้ชนิดใด ๆ ของคำนำหน้ากับวิธี GetList  ส่วนย่อยของ jQuery ดังต่อไปนี้แสดงให้เห็นถึงจุด:

image

ถ้าคุณทำเช่นนั้น, บริการเว็บการตอบสนอง ด้วยการ "ค่าไม่สามารถเป็น null" ตามนี้ พู้ทำเล่น-ให้เสียงบรรยาย HTTP:

<?xml version = "1.0" เข้ารหัส = "utf-8"?>
  <สบู่:ซองจดหมาย
     xmlns:สบู่ ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/ 2001/XMLSchema-อินสแตนซ์
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <สบู่:เนื้อความ>
    <สบู่:ข้อบกพร่อง>
      <faultcode>สบู่:เซิร์ฟเวอร์</faultcode>
      <faultstring>
        ข้อยกเว้นของชนิด ' Microsoft.SharePoint.SoapServer.SoapServerException’ เกิดขึ้น.
      </faultstring>
      <รายละเอียด>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
ค่าไม่สามารถเป็น null.
        </errorstring>
      </รายละเอียด>
    </สบู่:ข้อบกพร่อง>
  </สบู่:เนื้อความ>
</สบู่:ซองจดหมาย>

แน่นอน, คุณอาจจะไม่เพิ่มคำนำหน้าว่า "s0" ด้วยตนเอง, แต่เครื่องมือบางชนิดมีแนวโน้มที่ (เช่นอุปราคา).

นี่คือความสับสนทั้งหมด / frustrating เนื่องจากวิธีการอื่น ๆ ทนนำหน้า  สำหรับอินสแตนซ์, ที่ GetListCollection วิธีไม่รังเกียจถ้าจะได้รับสิ่ง, แม้จะ มีหน้าที่พูดจาเหลวไหลเช่น "xyzzy":

image

นี้ "ค่าไม่สามารถเป็น null" ดูเหมือนว่าค่อนข้างปกติ lists.asmx เพื่อหวังว่านี้จะช่วยให้คนออกในอนาคต.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ซ้อนกันไม่รู้จบ <div> แท็กและ jQuery

นี้ดูเหมือนว่าหัวข้อ oddball การดังกล่าว, ผมไม่แน่ใจว่าเป็นจริงคุ้มค่าบล็อกเกี่ยวกับ, แต่ที่ไม่เคยหยุดฉันก่อน, ดังนั้นที่นี่เราไป ยิ้ม

ฉันกำลังหาโครงการที่ผมกำลังดึงข้อมูลบางอย่างจากการค้นหา, ในที่สุดเปลี่ยนการบรรจุค่าเป็นข้อความ XML และ XML ที่เป็น HTML ผ่าน XSLT  มีจำนวนมากของ jQuery ที่เกี่ยวข้อง, หนึ่งบิตที่ใช้งาน tabbing  เมื่อคุณคลิกบนแท็บ (จริง ๆ, การ <div>), .hide เรียกใช้ jQuery() และ.show() บนว่า divs ต่าง ๆ (โหลดหน้าแรกดาวน์โหลดเนื้อหาทั้งหมดดังนั้นในกรณีนี้มี postbacks ไม่).

พวงของชั่วโมงที่ผ่านมา, แท็บสลับตรรกะเริ่มประพฤติผิด และมันจะไม่แสดงหนึ่งแท็บของฉัน  ในที่สุดติดตามมันลงจริงที่เทอร์ (น้อย) ความคิดที่จะ <div> แท็กซ้อนไกล, ไกลลึกกว่า intendedต้องแสดงแถบเครื่องมือนักพัฒนา:

-<รหัส div = "Tab1Content">
  -<div>
    -<div>
      -<รหัส div = "Tab2Content">
        -<div>
           …………………………
                   </div>  <ตัวสุดท้าย แสดงปิดทางลงที่นี่!

ดังนั้น, ถ้าฉันไม่มี $("#Tab1Content").ซ่อน(), ฉันจะซ่อน Tab2 และฉันอาจไม่เคยแสดง Tab2 ถ้าฉันไม่แสดง Tab1  ผมคัดลอก และวางรหัสค่าสตูดิโอภาพและเห็นซับของ div ค่าทั้งหมดอย่างดี, เหมือนพวกเขาควรจะทำ, มองเช่นนี้:

-<รหัส div = "Tab1Content">
  +<div>
  +<div>
-<รหัส div = "Tab2Content">
  +<div>
  +<div>

ฉันตีศีรษะกำแพงในขณะ และสังเกตเห็นว่า ใน HTML จริง รหัสถูกสร้างมากเปล่า <div> แท็ก, เช่น:

<เนื้อความ>

  <รหัส div = "Tab1Content">

    <รหัส div = "row1" />
    <รหัส div = "row2" />

  </div>

  <รหัส div = "Tab2Content">

    <รหัส div = "row1" />
    <รหัส div = "row2" />

  </div>

</เนื้อความ>

(ด้านบนมี oversimplified waaaaaaaaaaaay  แท็ก div เปล่าถูกทั้งหมด. บางอย่างของฉัน <div> แท็กเต็มไปด้วยเนื้อหา, แต่ไม่มาก  ผมมารับรู้ที่ที่ของฉัน <xsl:แต่สำหรับละ> คำสั่งถูกเปล่งแบบสั้น div แท็กเมื่อ xsl:ไม่ได้แต่สำหรับละ ' การค้นหาข้อมูลใด ๆ  ฉันบังคับคิดเป็น HTML ในการแสดงผล, ดังที่แสดง:

image

 

หลังจากไม่ได้ที่, ทั้งหมดของ div ตั้งเรียงรายอย่างสวยงาม และสลับแท็บของฉันเริ่มทำงาน.

เป็นเสมอ, ฉันหวังว่า นี้ช่วยให้คนในเหน็บแนม.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ยัง ได้เพิ่มเติม jQuery–ปรับขนาดของตัวอย่างรูปภาพ

ผมรับมา web part จากผู้ขายเดิมของลูกค้า และมีปัญหาขนาดภาพ  ภาพควรเป็น 60×50 แต่ด้วยเหตุผลบางอย่างแปลก, ผู้ขายเดิมบังคับให้เป็น 42×42, ให้ squashed:

 

รูปภาพที่ดี

ภาพไม่ดี

นี่คือมาร์กอัป (ค่อนข้างสมัยใหม่):

<ตารางเรียน = 'ขยายการ outlook'>
  <thead>
    <tr>
      <th  ความกว้าง ='100′>3 วันอังคาร</th>
    </tr>
  </thead>

  <tbody>
    <คลาส tr = 'การณ์'>
      <ความกว้างของ td ='100′>
        <ul>
          <คลาส 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>
        </ul>
      </td>
    </tr>

  </tbody>

</ตาราง>

คุณจะสังเกตว่า แม้ใน เส้นทางรูปตัวเอง แสดงขนาดเหมาะสม (60×50) ผู้ขายเดิมบังคับใน 42×42.  ทำไม?  บ้า.

อย่างไรก็ตาม, ต้องการแก้ปัญหาที่ง่าย และรวดเร็วกับประเด็นนี้ และฉันหันไป jQuery  เคล็ดลับคือการ ค้นหาทั้งหมดของงาน <img> แท็ก  ไม่ได้อยาก muck เกี่ยวกับแท็กใช้ได้ img อื่น ๆ (ซึ่งมีเป็นจำนวนมาก).  บิตนี้ของ jQuery ได้หลอกลวง:

<สคริปต์ชนิด = "ข้อ ความ/javascript" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></สคริปต์>

<สคริปต์ชนิด = "ข้อ ความ/javascript">
     $(เอกสาร).พร้อม(ฟังก์ชัน () {

         $(' li.condition > ใช้ได้ img').แต่ละ(ฟังก์ชัน (ดัชนี, สินค้า)
           
{
             $(สินค้า).css("ความกว้าง", "60"); 
             $(สินค้า).css("ความสูง", "50");
            });
     }); // เมื่อโหลดเอกสาร
</สคริปต์>

บิตของรหัสที่ค้นหาคอลเลกชัน <li> แท็กคลาสซึ่งเป็น "เงื่อนไข" และ <img> เด็ก  จากนั้นจะคำนวณซ้ำทั้งหมดที่  ทำงานเหมือนเสน่ห์.

ผมคงไม่สามารถปรับปรุงมัน, แต่ไม่ได้เป็นชนิดของ unix คนที่แก้ไขπ ถึง 18 ตัวเลขแม่นยำใช้ได้ทำให้ภาษาออว์ค และผมไม่ว่าถ้า jQuery guy อย่างใดอย่างหนึ่ง ยิ้ม.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ใช้ระบบแจ้งเตือนแบบผุดขึ้นทั่วโลก

ฉันเขียนขึ้นเป็นบทความสำหรับ www.sharepoint.briefing.com สิทธิ"ใช้ระบบแจ้งเตือนแบบผุดขึ้นทั่วโลก.”  ฟังก์ชันนี้ถูกนำมาใช้สำหรับเป็นวิทยาลัยชุมชนในการสื่อสารคำลงท้ายของโรงเรียนเนื่องจากหิมะและต่อไปเรื่อย ๆ 

ใช้รายการแบบกำหนดเอง, ออกจากกล่อง SharePoint web services และ jQuery บางทำงานได้.

นี่คือแบบ teaser:

image

อ่านสิ่งทั้งหมดที่นี่: http://www.sharepointbriefing.com/features/article.php/3918471/Implement-a-Global-Pop-up-Notification-System.htm

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ควบคุมของ OK และปุ่มยกเลิก

ฉันเขียน บทความนี้ ที่เกิดขึ้นในขณะเดียวกันกลับไป, แต่ลักษณะเหมือนกับที่ฉันไม่ได้ลิงค์ได้จากบล็อกของฉันได้ในเวลา, ดังนั้นที่นี่ไป:

image

บทความนี้อธิบายวิธีการบังคับ newform.aspx เมื่อต้องการเปลี่ยนเส้นทางไปหน้าหนึ่งเมื่อผู้ใช้คลิกตกลงและหน้าที่แตกต่างเมื่อเธอคลิกที่ยกเลิก.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin