अद्यतन (01/17/08): इस ब्लॉग प्रविष्टि के बारे में अधिक हाइपरलिंक XSL अच्छाई वार्ता: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
अवलोकन और उद्देश्य: मैं एक साधारण पट्टी चार्ट एक डैशबोर्ड पर घटक के रूप में सेवा करने के लिए बनाया गया था. मैं एक और पोस्ट के लिए चार्ट के निर्माण पर विवरण बचा लेंगे, लेकिन मैं उस तकनीक का आविष्कार नहीं किया था (और न ही प्रश्नचिह्न, कि बात के लिए). यह निकला एक चार्ट में और जबकि मैं तय है कि बग था, मैं कुछ लेबल कि ग्राफ के पीछे अंतर्निहित सूची पर बताया हाइपरलिंक्स में परिवर्तित करने का अवसर ले लिया. उदाहरण के लिए, "पकड़" मूल्य के साथ एक लेबल है. मैं इतना है कि उपयोगकर्ता पर क्लिक करें और सूची में जिनकी स्थिति मान है "पकड़" विशिष्ट प्रविष्टियों के लिए नीचे ड्रिल कर सकते लेबल किसी हाइपरलिंक में बदलना चाहता था.
कदम:
- उपयोग के लिए दृश्य स्टूडियो sharepoint-अवगत intellisense.
- DVWP XSLT दृश्य स्टूडियो में प्रतिलिपि बनाएँ (किसी रिक्त प्रोजेक्ट बनाएँ, प्रोजेक्ट के लिए कोई XSL फ़ाइल जोड़ें).
- प्रतिलिपि बनाएँ में क्लिपबोर्ड का उपयोग करने के लिए इच्छित लिंक.
- यह XSL में सही स्थान में चिपकाएँ.
- URL तर्क विभाजकों से क्वेरी स्ट्रिंग पर कनवर्ट करें"&" के लिए"&"
- अलग-अलग तर्क Url सांकेतिक शब्दों में बदलना.
- उस के अंदर रैप करें एक <एक href…> </एक>
उदाहरण:
मैं एक यूआरएल है:
http://[सर्वर]/[साइट]/Lists/Open Positions/AllItems.aspx?देखें ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 भर्ती =&FilterValue1 = होल्ड
मैं इसे में कनवर्ट करें:
<एक href="Lists/Open Positions/AllItems.aspx?देखें % 7b84EEA2F5-121B-40B7-946F =-
0FA704A1DAA1 %7 d&FilterField1 भर्ती =&FilterValue1 = होल्ड"> पकड़ो: </एक>
मैं मैन्युअल रूप से प्रथम तर्क से तब्दील हो जाता है:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
करने के लिए:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d
(इस में, ओपन ब्रेस ट्रांस्फ़ॉर्म्स % 7b करने के लिए और समापन %7 d के लिए ट्रांस्फ़ॉर्म्स संभालो)
दूसरी और तीसरी तर्कों’ पैरामीटर्स ("FilterField1 =भर्ती" और "FilterValue1 =पकड़ो" क्रमश:) url-एनकोडेड क्योंकि वे किसी भी असुरक्षित वर्ण शामिल नहीं किया जा करने की आवश्यकता नहीं.
नोट्स:
इस तकनीक आम तौर पर कहीं भी तुम चाहते में XSLT कहाँ हाइपरलिंक URL पर पैरामीटर इस तरह के रूप में शामिल एक हाइपरलिंक एम्बेड करने के लिए काम करना चाहिए:
http://[सर्वर]/[साइट]/Lists/Open Positions/AllItems.aspx?देखें ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 भर्ती =&FilterValue1 = होल्ड
मेरे कस्टम सूची तक पहुँचने और मैन्युअल रूप से स्थिति स्तंभ पर फ़िल्टरिंग द्वारा यूआरएल ही पास (लेबल "भर्ती" इसके बाद के संस्करण).