वर्ग पुरालेख: jQuery और SharePoint

SharePoint त्वरित लॉन्च में रिश्तेदार यूआरएल के साथ कष्टप्रद समस्या पर काबू पाने

मैं दूसरे दिन त्वरित लॉन्च नेविगेशन करने के लिए एक लिंक जोड़ने के लिए चाहता था और SharePoint मुझे बताया:

image

कि शुद्ध पाठ संस्करण है:

सुनिश्चित करें कि URL मान्य है और के साथ या तो मान्य वर्ण शुरू होता है (एक संख्या चिह्न (#) या फ़ॉरवर्ड स्लैश (/)) या कोई मान्य प्रोटोकॉल समर्थित (उदाहरण के लिए, ' http://’, ' https://’, ' फ़ाइल://’, ' एफ़टीपी://’, ' इन्हें मेल करें:’, ' समाचार:’).

"Blech और चेचक!"मैंने कहा.

त्वरित लॉन्च में एक ज्ञात लिंक ढूँढें और उसके व्यवहार को ओवरराइड करने के लिए जावास्क्रिप्ट का उपयोग करने के लिए यह करने के लिए एक workaround है.

इस परीक्षण के लिए, thusly अपने परीक्षण साइट के लिए एक नई लिंक जोड़ने:

image

मैं jQuery का उपयोग. यह हल करने के लिए, कुछ जावास्क्रिप्ट और jQuery कोड इस तरह की एक पंक्ति के साथ और अपने पसंदीदा तकनीक का उपयोग कर पृष्ठ पर जाओ:

 

$(दस्तावेज़).तैयार( समारोह () {

    $("एक:होता है('URL प्रतिस्थापन का परीक्षण')").क्लिक करें(समारोह () { चेतावनी("परिवर्तित क्लिक व्यवहार!"); वापस जाएँ झूठी;});

});

और अपने चाचा बॉब है.

JQuery चयनकर्ता पाता है हर <एक> टैग है कि इसके नाम में "Test URL प्रतिस्थापन" है. आप ढूँढें जो आपके लिंक और इस तरह के आधार पर ट्यून करने के लिए चाहते हो सकता.

.Click(समारोह() ओवरराइड करता है जब उपयोगकर्ता क्लिक किया जो भी SharePoint किया होता. सुनिश्चित करें कि आप "वापसी झूठी" या फिर इसे अपने सामान करना और फिर href बात करने की कोशिश भी करेंगे, जो लगभग निश्चित रूप से अपने लक्ष्य नहीं है.

यह किया गया था और एक SharePoint ऑनलाइन वातावरण में परीक्षण होना चाहिए लेकिन में अच्छी तरह से काम 2010 और इससे पहले भी.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: "अमान्य URL पैरामीटर का समाधान” lists.asmx में UpdateListItems के साथ समस्या

के द्वारा lists.asmx UpdateListItems के साथ कार्य करते समय, यह त्रुटि उत्पन्न करने के लिए आसान है:

अमान्य URL पैरामीटर.

प्रदान की गई URL में कोई अमान्य आदेश या मान है. कृपया URL को फिर से जाँचें.

आप इस त्रुटि प्राप्त कर सकते हैं जब आप ID में शामिल करने के लिए भूल जाओ फ़ील्ड्स अद्यतन करने के लिए की सूची।  यह, एसपी इन वेब सेवाओं का एक बहुत की तरह, सा counterintuitive के बाद से आप ID की ID विशेषता में शामिल करने की ज़रूरत है <विधि> तत्व।  और तुम नहीं कर रहे हैं ID को अद्यतन और शायद कभी नहीं करने के लिए चाहते पहली जगह में.

इस SOAP एनवलप काम करता है:

<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 ="जारी रखें">
          <विधि ID ="1" अध्यक्ष तथा प्रबंध निदेशक ="अद्यतन">
            <फ़ील्ड का नाम ="CooperativeLock">अवरोधित!</फ़ील्ड>
            <फ़ील्ड का नाम ="आईडी">1</फ़ील्ड>
          </विधि>
        </बैच>                     
        </अपडेट>                
      </UpdateListItems>             
  </soapenv:शरीर>         
</soapenv:लिफ़ाफ़ा>

तब आप कष्टप्रद "अमान्य URL पैरामीटर" संदेश प्राप्त होगा यदि आप ID फ़ील्ड संदर्भ बाहर पट्टी.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

 

गरीब आदमी जावास्क्रिप्ट में कैशिंग है

[TL;डॉ. संस्करण: async कॉल के परिणामों को संग्रहीत करने के लिए कुकीज़ का उपयोग करें; पिछले async कॉल का परिणाम तुरंत प्रस्तुत करना और फिर उन्हें पृष्ठ-लोड करने के बाद मान्य करें।]

मैं SharePoint इंट्रानेट साइट पर एक ग्राहक के लिए काम कि सुविधाओं कर दिया गया है, अन्य बातों के अलावा, एक stylized माध्यमिक नेवीगेशन जिसका मेनू विकल्पों के माध्यम से एक नियमित रूप से पुराने कस्टम सूची प्रबंधित कर रहे हैं।  विचार है कि ग्राहक को प्रभावित करने वाले या वैश्विक नेविगेशन द्वारा इसे बाहर डाल द्वारा प्रभावित किया जा रहा बिना "उनके" साइट मेनू नियंत्रण करने के लिए हो जाता है.

(वहाँ कुछ अविश्वसनीय रूप से एक CEWP कि बताते हैं कि कुछ सीएसएस और जे एस एक साइट के व्यवहार के बारे में लगभग सब कुछ मौलिक परिवर्तन करने के लिए लोड करता है, लेकिन है कि एक और पोस्ट के लिए किसी HTML फ़ाइल को जोड़ने के बारे में विध्वंसक है)

यह बहुत आसान के लिए कोड:

  • पेज लोड हो रहा है खत्म करो और एक async बाकी या lists.asmx या जो कुछ भी का उपयोग कर एक सूची से मेनू आइटम को लोड करने के लिए कॉल करने के लिए प्रतीक्षा करें
  • JQuery का उपयोग, गतिशील रूप से अगर एक गुच्छा आबाद <li>एक माता पिता के अंदर है <उल> (इस tecnnique की एक सरलीकृत विवरण के लिए ईसाई Pinder लेख यहाँ देखें)
  • सभी स्वरूपण करने के लिए सीएसएस का उपयोग करें
  • लाभ!

है गले में हाजिर यहाँ यह है कि हर बार किसी को भी साइट के पृष्ठों में से एक हिट, उस उपयोगकर्ता के वेब ब्राउज़र सूची से आइटम प्राप्त करने के लिए पहुँच रहा है।  एक बार देव पूरा हो गया है और परीक्षण किया जा करने के लिए बातें साबित हो गया है स्थिर और पूर्ण करें, इस कॉल अनावश्यक है अधिक से अधिक 99% समय के बाद से मेनू शायद ही कभी बदल जाता है।  यह भी एक अजीब UI प्रभावित इस बहादुर नई दुनिया में हाइपर ajaxy वेब साइटों की आम है जो है – पृष्ठ renders और केवल तब मेनू प्रदान करता है।  यह चिड़चिड़ा और मेरे विचार में ध्यान भंग है।  और चिड़चिड़ा. तो, कैशिंग। 

मैं तर्क thusly संशोधित:

  • यह देखो कि के रूप में मैं पिछले मेनू में होते हैं जो ब्राउज़र में एक कुकी के लिए पढ़ें
    • अगर पाया, यह तुरंत प्रस्तुत करना।  पेज लोडिंग समाप्त करने के लिए इंतजार मत करो।  (आप की जरूरत है अपने HTML रणनीतिक यहाँ रखा है यह सुनिश्चित करने के लिए, लेकिन ऐसा करना कठिन नहीं है).
  • पेज लोड हो रहा है खत्म करो और एक async बाकी या lists.asmx या जो कुछ भी का उपयोग कर एक सूची से मेनू आइटम को लोड करने के लिए कॉल करने के लिए प्रतीक्षा करें
  • क्या मैं कुकी के खिलाफ मिल गया की तुलना करें
    • यदि यह मैच, रुको
    • अन्यथा, jQuery का उपयोग, गतिशील रूप से अगर एक गुच्छा आबाद <li>है में एक <उल>
  • सभी स्वरूपण करने के लिए सीएसएस का उपयोग करें
  • लाभ!

आप में से कुछ कहने के लिए जा रहे हैं, "अरे! चूंकि आप मेनू पढ़ रहे हैं वैसे भी कोई वास्तविक कैशिंग यहाँ पर जा रहा है हर एक बार.”  और तुम ठीक कह रहे हैं-मैं किसी भी प्रकार के तोड़ सर्वर नहीं दे रहा हूँ।  लेकिन renders HTML पेलोड पूरी तरह से क्योंकि कॉल async है और पृष्ठ प्रारंभिक के बाद होता है, यह "उपयोगकर्ता के लिए और अधिक उत्तरदायी लगता"।  अधिक खींचता है पृष्ठ के रूप में सुंदर मेनू renders.  यदि मेनू में परिवर्तन होता है, उपयोगकर्ता एक नर्वस पुनः आरेखित मेनू के लिए अधीन है, लेकिन केवल उस एक बार.

वहाँ कुछ तरीके इस कैशिंग और अधिक प्रभावी बनाने के लिए और एक ही समय में बाहर सर्वर मदद कर रहे हैं:

  • एक नियम है कि "कुकी"कैश की एक न्यूनतम के लिए मान्य है में डाल दिया 24 घंटे या कुछ अन्य समय सीमा. वहाँ तक है कोई समयसीमा समाप्त कुकी, कुकी मेनू स्नैपशॉट का उपयोग करें और कभी नहीं सर्वर हिट.

.. ठीक है कि सभी कि मन अभी आया है :). 

अगर किसी को किसी भी चालाक विचारों यहाँ है मैं उन्हें पता है कि प्यार होता.

और अन्त में – यह तकनीक अन्य सामान के लिए इस्तेमाल किया जा सकता है।  इस क्लाइंट पृष्ठ डेटा-संचालित चीजों की एक संख्या है विभिन्न पृष्ठों पर, उनमें से कई अपेक्षाकृत शायद ही कभी बदल रहा (एक बार एक हफ्ते या महीने में एक बार की तरह).  यदि आप कार्यक्षमता की विशिष्ट क्षेत्रों को लक्षित, आप एक और अधिक उत्तरदायी UI सामग्री स्थानीय कुकी स्टोर से खींच और तुरंत प्रतिपादन के द्वारा दे सकते हैं।  यहां तक कि अगर तुम किसी भी चक्र सर्वर की बचत नहीं कर रहे हैं यह तेजी से उपयोगकर्ता के लिए लगता है।  तुम कर सकते हैं सर्वर साइकिल इस स्थानीय कुकी कैश अमान्य करने के लिए कुछ शर्तें और ट्रिगर्स पर तय करके सहेजें।  है कि सभी स्थिति और artsy सामान और वास्तव में सबसे ज्यादा मज़ा :). 

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

XSLT और jQuery नमूने

मैं XSLT और jQuery और सोचा कि मैं हिस्सा होता है कि दूसरों के भविष्य में उपयोगी पा सकते हैं के कुछ टुकड़े का एक बहुत कर रहा है.

उदाहरण 1: सरल जावास्क्रिप्ट का उत्सर्जन / XSLT में jQuery:

<xsl:टेम्पलेट मैच "कुछ =" xml:अंतरिक्ष = "" की रक्षा>

  <!– रिक्त क्वेरी अनुकूल फिल्टर छुपी हुई फ़ील्ड बाहर –>
  <स्क्रिप्ट प्रकार = "पाठ/जावास्क्रिप्ट">
    $(दस्तावेज़).तैयार(समारोह(){
      $("#QueryFriendlyFilters").वैल("खाली");
    });
  </स्क्रिप्ट>

</xsl:टेम्पलेट>

कि थोड़ा कुछ जावास्क्रिप्ट है कि पेज लोडिंग समाप्त करने के लिए इंतजार कर रहा है उत्सर्जन करता है (की वजह $(दस्तावेज़).तैयार(…)) और तब सेट किसी छुपे फ़ील्ड का मान QueryFriendlyFilters "खाली" अनलंकृत मान के लिए नामित.

उदाहरण 2: का प्रयोग करें <xsl:अगर> "से अधिक" की जांच करने के लिए,  "कम से कम", आदि.

<xsl:टेम्पलेट मैच "कुछ =" xml:अंतरिक्ष = "" की रक्षा>

  <div id = "fdcAllFilters">
 
    <xsl:यदि test="@Count>0">
      <स्पैन वर्ग = "fdcFilterLabel">मौजूदा फ़िल्टर्स:</काल>
    </xsl:अगर>

    <!– यहाँ और अधिक सामान होता है. –>

</xsl:टेम्पलेट>

इसके बाद के संस्करण टुकड़ा अगर "" कुछ"तत्व की गिनती" नामक एक विशेषता शून्य से अधिक है देखने के लिए जाँच करता है।  XML इस के पीछे की तरह कुछ होगा:”

<कुछ गिनती "5" = />

उदाहरण 3: सभी तत्वों के माध्यम से पुनरावृति, jQuery कॉल interspersing.

<!– सभी फ़िल्टर के माध्यम से पुनरावृति और सही प्रदर्शित करें  कड़ियाँ. –>
<xsl:के लिए प्रत्येक चयन करें = "UserFilter">

  <एक वर्ग "FilterHref =" href = "जावास्क्रिप्ट:mySubmitPage('RemoveUserFilter','{@ ID}’)">[एक्स]</एक>

  <स्पैन वर्ग = "fdcFilterLabel"><xsl:select="@FilterValue"/ मान का></काल>

  <स्क्रिप्ट प्रकार = "पाठ/जावास्क्रिप्ट">

    $(दस्तावेज़).तैयार(समारोह(){
        <xsl:पाठ><![CDATA[$("#QueryFriendlyFilters").वैल( ($("#QueryFriendlyFilters").वैल() + " ]]></xsl:पाठ>\"<xsl:select="@FilterValue"/ मान का>\"<xsl:पाठ><![CDATA["));]]></xsl:पाठ>
    });

  </स्क्रिप्ट>

</xsl:के लिए प्रत्येक>

इसके बाद के संस्करण टुकड़ा सबसे जटिल है और इसे करने के लिए आसान तरीके हो सकते हैं.

XML इस के पीछे मोटे तौर पर इस तरह दिखता है:

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

यह टुकड़ा के माध्यम से iterating है <UserFilter> नोड्स। 

यह पहली बार एक लंगर का उत्सर्जन करता कि जब क्लिक किया टैग पृष्ठ पर पहले से ही है एक जावास्क्रिप्ट फ़ंक्शन invokes, "mySubmitPage" और एक विशेषता के मान पर गुजरता है <UserFilter> नोड "ID" नाम दिया। 

यह तो कुछ jQuery के लिए पृष्ठ लोड करने के लिए इंतजार कर रहा है उत्सर्जन करता है।  उस jQuery छुपी FilterValue विशेषता के मान जोड़कर "QueryFriendlyFilters" नामक फ़ील्ड अद्यतन करता है।  नोट सभी पागल <xsl:पाठ> और <![CDATA[ … ]]> सामान.

यह है कि, आशा है कि यह मदद करता है!

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

Lists.asmx, GetListItems और फ़ोल्डर्स

मैं SharePoint के भाग के रूप में प्रदान की आज list.asmx वेब सेवा के आसपास किसी के लिए कुछ शोध कर रहा था 2010 (और इससे पहले).  वह सूची आइटम को रूट फ़ोल्डर में प्राप्त करने में सक्षम था (उप फ़ोल्डर्स के नाम सहित), लेकिन उप फ़ोल्डर्स में आइटम्स नहीं मिल सका।  मैं कुछ internets पर चारों ओर देख रहा था और यह एक आश्चर्य की बात आम सवाल है।  अभी तक, मैं सरल प्रश्न के लिए एक अच्छा जवाब नहीं मिल सका, अगर मैं फ़ोल्डर पता", मैं उस फ़ोल्डर में आइटम कैसे मिलता है?”  ईमानदार होना करने के लिए, मैं थोड़ी देर के लिए मेरी अपनी पर इस एक बाहर आंकड़ा करने के लिए चाहता है के बाद से मैं कोशिश कि सभी कठिन नहीं था मुस्कुराओ.

इस सेट अप करने के लिए, मैं एक साइट "ब्लॉगिंग परिदृश्यों" नाम दिया और "उप फ़ोल्डर्स के साथ कस्टम सूची" नामक एक कस्टम सूची बनाई।  मैं तो नाम फ़ोल्डर बनाया:

  • वर्ष 2005
  • वर्ष 2006
  • वर्ष 2007

मैं कुछ आइटम्स फ़ोल्डर में जोड़े "वर्ष 2006 '।  यह है क्या यह की तरह लग रहा है:

image

मेरे दोस्त सी # कोड लिख नहीं है, लेकिन बल्कि जावा का प्रयोग, तो क्या वह वास्तव में जरूरत SOAP एनवलप था।  कि प्राप्त करने के लिए, मैं jQuery का एक सा लिखा था और फिर सारंगी बजानेवाला वास्तविक HTTP बातचीत करने के लिए प्रयुक्त.

यहाँ प्रासंगिक jQuery है (यदि आप कॉपी/पेस्ट करना चाहते हैं मैं कोड नीचे नीचे नकल):

image

वे पहली कुंजी है दोनों को शामिल करने के लिए एक <queryOptions> और <QueryOptions> नोड।  दूसरा प्रमुख है कि <फ़ोल्डर> नोड एक यूआरएल जो करने के लिए क्लाइंट तक पहुँच गया है.

इस प्राप्त करने के लिए अन्य तरीके हो सकते हैं, लेकिन यह मेरे लिए अच्छी तरह से काम किया है jQuery का उपयोग करते समय.

यहाँ SOAP एनवलप इसके बाद के संस्करण के लिए है:

<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/ब्लॉगिंग उप फ़ोल्डर्स/वर्ष 2006 के साथ परिदृश्यों/सूची/कस्टम सूची</फ़ोल्डर>
        </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 उप फ़ोल्डर्स/वर्ष 2006 के साथ परिदृश्यों/सूची/कस्टम सूची</फ़ोल्डर> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:शरीर> \
           </soapenv:लिफ़ाफ़ा>";

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

Lists.asmx, GetList और 'मान रिक्त होना नहीं कर सकते”

मुझे आज पता चला कि GetList() विधि में lists.asmx वेब सेवा बहुत ही सावधानी से कहा जा करने के लिए है या यह एक रहस्यमय "मान रिक्त हो सकता" अपवाद फेंक करने के लिए प्रवण है (और कि आप अतीत भी बदतर जेनेरिक त्रुटि संदेश प्राप्त कर सकते हैं संभालने है, "प्रकार की अपवाद ' Microsoft.SharePoint.SoapServer.SoapServerException’ फेंक दिया गया था.")  विशेष रूप से, मैंने पाया है कि आप GetList पद्धति पर उपसर्ग की किसी भी तरह प्रदान नहीं कर सकते।  निम्नलिखित jQuery स्निपेट दिखाता है बात:

image

यदि आप कि क्या, वेब सेवा का जवाब है "मान के अनुसार यह बातिल हो नहीं कर सकता के साथ" सारंगी बजानेवाला-HTTP प्रतिलेख प्रदान की:

<?xml संस्करण "1.0 =" एन्कोडिंग = "utf-8"?>
  <साबुन:लिफ़ाफ़ा
     xmlns:साबुन ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/ 2001/xml स्कीमा-उदाहरण
     xmlns:xsd ="
http://www.w3.org/ 2001/xml स्कीमा">

  <साबुन:शरीर>
    <साबुन:गलती>
      <faultcode>साबुन:सर्वर</faultcode>
      <faultstring>
        अपवाद प्रकार का ' Microsoft.SharePoint.SoapServer.SoapServerException’ फेंका था.
      </faultstring>
      <विस्तार>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
मान रिक्त नहीं हो सकता.
        </errorstring>
      </विस्तार>
    </साबुन:गलती>
  </साबुन:शरीर>
</साबुन:लिफ़ाफ़ा>

बेशक, तुम्हें शायद कि "s0" उपसर्ग अपने दम पर जोड़ नहीं होता, लेकिन कुछ उपकरण यह करने के लिए प्रवण हैं (ग्रहण की तरह).

यह सब अधिक भ्रामक है / निराशा होती है क्योंकि अन्य विधियों को उपसर्ग सहन।  उदाहरण के लिए, इस GetListCollection विधि यदि यह prefixed किया गया है मन नहीं करता, "xyzzy" की तरह भी बकवास उपसर्गों के साथ:

image

यह "मूल्य नहीं हो सकता नल है" तो उम्मीद है कि यह मदद मिलेगी किसी को बाहर भविष्य में lists.asmx के साथ काफी आम लगता है.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

अंतहीन को नेस्ट करना <div> टैग और jQuery

यह ऐसी एक oddball विषय की तरह लगता है, मुझे यकीन है कि यह वास्तव में के बारे में ब्लॉगिंग के लायक है नहीं कर रहा हूँ, लेकिन कि कभी नहीं से पहले मुझे बंद कर दिया है, तो यहाँ हम चले मुस्कुराओ

मैं जहाँ मैं एक खोज से कुछ डेटा खींच रहा हूँ एक परियोजना पर काम कर रहा हूँ, यह एक XML संदेश और उसके बाद उस XML में पैकेजिंग अंततः XSLT के माध्यम से HTML में तब्दील है।  JQuery का एक बहुत कुछ शामिल है, जो की एक बिट कुछ tabbing कार्यक्षमता लागू करता है।  जब आप कोई टैब पर क्लिक करें (वाक़ई, एक <div>), .hide jQuery invokes() और .show() पर विभिन्न divs (तो इस मामले में कोई postbacks वहाँ रहे हैं के लिए प्रारंभिक पृष्ठ लोड सभी सामग्री डाउनलोड).

घंटे पहले की एक गुच्छा, टैब स्विचन तर्क erratically व्यवहार करना शुरू कर दिया और यह मेरी टैब्स में से एक दिखाना नहीं होता।  मैं अंततः के लिए नीचे इस तथ्य यह है कि इंटरनेट एक्सप्लोरर ट्रैक (कम से कम) सोचा कि <div> टैग तक नेस्ट किया हुआ, इरादा की तुलना गहराई तक।डेवलपर उपकरण पट्टी दिखाना होगा:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-अंत में यह दिखा रहा है यहाँ नीचे सभी तरह बंद हो गया था!

तो, अगर मैंने किया था एक $("#Tab1Content").छिपाएँ(), मैं भी Tab2 छिपा होगा और मैं अगर मैं भी Tab1 शो फ्लॉप Tab2 कभी नहीं दिखा सकता है।  मैं नकल की है और दृश्य स्टूडियो और इसे ऊपर div अस्तर के सभी अच्छी तरह से पता चला में कोड चिपकाया, की तरह वे कर रहे हो करने के लिए चाहिए थे, इस तरह की तलाश:

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

मैं थोड़ी देर के लिए दीवार के खिलाफ मेरे सिर को हरा और देखा था कि वास्तविक HTML में खाली के एक बहुत कोड जनरेट कर रहा है <div> टैग, की तरह:

<शरीर>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</शरीर>

(इसके बाद के संस्करण waaaaaaaaaaaay oversimplified है।  खाली div टैग पूरी तरह से मान्य हैं. उनमें से कुछ मेरे <div> टैग सामग्री से भरा रहे थे, लेकिन कई और अधिक नहीं थे।  मैं साकार करने आया था कि मेरी <xsl:के लिए प्रत्येक> निर्देशों के लघु-रूप उत्सर्जक थे div टैग जब xsl:के लिए प्रत्येक नहीं था ' किसी भी डेटा को खोजने।  मैं एक HTML टिप्पणी आउटपुट में मजबूर, के रूप में दिखाया गया:

image

 

करने के बाद मैंने किया है कि, सभी div को अच्छी तरह से तैयार किया और मेरी टैब स्विचन काम शुरू कर दिया.

हमेशा की तरह, मुझे आशा है कि इस मदद करता है किसी को एक चुटकी में.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

अभी तक अधिक jQuery–एक उदाहरण के छवि का आकार परिवर्तन

मैं एक ग्राहक की पुरानी विक्रेता से एक वेब पार्ट विरासत में मिला और यह एक छवि का आकार समस्या है।  छवियाँ 60 होना चाहिए×50 लेकिन कुछ अजीब कारण के लिए, मूल विक्रेता उन्हें 42 में मजबूर×42, इसलिए वे squashed देखो:

 

अच्छी छवि

छवि खराब

यहाँ मार्कअप है (कुछ हद तक सरलीकृत):

<टेबल क्लास 'विस्तारित-आउटलुक' =>
  <thead>
    <टी. आर.>
      <गु  चौड़ाई ='100′>3 मंगलवार</गु>
    </टी. आर.>
  </thead>

  <tbody>
    <tr कक्षा = 'भविष्यवाणी'>
      <टीडी चौड़ाई ='100′>
        <उल>
          <ली क्लास 'उच्च' =>उच्च: 72&डिग्री;च</li>
          <ली क्लास = 'कम'>कम: 44&डिग्री;च</li>
          <ली क्लास 'हालत' =>सनी
            <img src =’
http://deskwx.weatherbug.com/images/Forecast/icons/localized/60×50/en/trans/cond007.png’ चौड़ाई ='42’ ऊंचाई ' 42 =’ alt =” />
          </li>
        </उल>
      </td>
    </टी. आर.>

  </tbody>

</तालिका>

आप कि भले ही ध्यान दें हूँ खुद की छवि पथ उचित आयाम से पता चलता है (60×50) मूल विक्रेता यह 42 में मजबूर×42.  क्यों?  दीवाना.

वैसे भी, मैं इस मुद्दे के लिए एक त्वरित और आसान समाधान चाहते थे और मैं करने के लिए jQuery में बदल गया।  उपयुक्त के सभी का पता लगाने के लिए चाल थी <आइएमजी> टैग।  मैं किसी भी अन्य img टैग के साथ के बारे में गंदगी करना चाहता था (जिनमें से वहाँ हैं कई).  JQuery के इस बिट चाल थी:

<स्क्रिप्ट प्रकार = पाठ/जावास्क्रिप्ट"" src ="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></स्क्रिप्ट>

<स्क्रिप्ट प्रकार = "पाठ/जावास्क्रिप्ट">
     $(दस्तावेज़).तैयार(समारोह () {

         $(' li.condition > आइएमजी ').प्रत्येक(समारोह (सूचकांक, आइटम)
           
{
             $(आइटम).सीएसएस("चौड़ाई", "60"); 
             $(आइटम).सीएसएस("ऊँचाई", "50");
            });
     }); // दस्तावेज़ लोड पर
</स्क्रिप्ट>

संग्रह कोड की है कि कुछ पाता है <li> टैग जिसका वर्ग "हालत" है और <आइएमजी> बच्चों को।  यह तब कि सभी के माध्यम से iterates.  एक आकर्षण की तरह काम किया.

मैं शायद यह कारगर बनाने सकता है, लेकिन मैं कभी नहीं था एक unix आदमी है कि π का हल की तरह करने के लिए 18 अंक परिशुद्धता sed और awk का उपयोग और यदि या तो jQuery आदमी मैं उस तरह नहीं हूँ मुस्कुराओ.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

एक वैश्विक पॉपप अधिसूचना प्रणाली लागू

मैं एक लेख के लिए ऊपर लिखा था www.sharepoint.briefing.com हकदार"एक वैश्विक पॉपप अधिसूचना प्रणाली लागू.”  इस फ़ंक्शन हिमपात के कारण स्कूल closings और आगे बातचीत करने के लिए सामुदायिक कॉलेज के लिए लागू किया गया था। 

यह एक कस्टम सूची का उपयोग करता है, बाहर बॉक्स SharePoint वेब सेवाएं और कुछ jQuery के लिए काम करते हैं.

यहाँ एक नमूना है:

image

पूरी बात यहाँ पढ़ें: http://www.sharepointbriefing.com/features/article.php/3918471/Implement-a-Global-Pop-up-Notification-System.htm

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

आपके ठीक और रद्द करें बटन पर नियंत्रण रखना

मैं ने लिखा इस अनुच्छेद एक समय पहले, लेकिन मैं यह करने के लिए समय पर मेरे ब्लॉग से लिंक नहीं किया था की तरह लग रहा है, तो यहाँ जाता है:

image

यह आलेख बताता है कि कैसे newform.aspx जब जब वह ' रद्द करें ' क्लिक उपयोगकर्ता ठीक और एक अलग पेज क्लिक करता है एक पृष्ठ के लिए पुनर्निर्देशित करने के लिए बाध्य करने के लिए.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin