UPDATE (01/17/08): Deze blog entry praat over meer hyperlink XSL-goedheid: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Overzicht en doelstelling: Ik had gemaakt een eenvoudig staafdiagram om te dienen als onderdeel op een dashboard. Ik zal de details opslaan op het opbouwen van grafieken voor een andere post, maar ik heb niet bedacht die techniek (noch het vraagteken, voor die kwestie). Het bleek er was een bug in de grafiek en terwijl ik dat vast, Ik nam de gelegenheid om te zetten sommige etiketten in hyperlinks die wees op de onderliggende lijst achter de grafiek. Bijvoorbeeld, Er is een label met de waarde "Hold". Ik wilde het label omzetten in een hyperlink zodat de gebruiker kan daarop tikken en boor neer aan de specifieke vermeldingen in de lijst waarvan de statuswaarde is "Hold".
Stappen:
- Gebruik visuele studio voor SharePoint-bewust intellisense.
- Kopieer de DVWP XSLT in visuele studio (Maak een leeg project, een XSL-bestand toevoegen aan het project).
- Kopieer de link die u wilt gebruiken naar het Klembord.
- Plak deze in de juiste locatie in de XSL.
- Convert URL argument scheidingstekens in de querytekenreeks van"&" tot"&"
- URL coderen afzonderlijke argumenten.
- Terugloop voorzien dat een <een href…> </een>
Voorbeeld:
Ik heb een URL:
http://[Server]/[site]/Lists/Open Positions/AllItems.aspx?Weergave ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Ik converteren naar:
<een href="Lists/Open Positions/AllItems.aspx?Weergave = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 %7 d&FilterField1 = Recruiter&FilterValue1 = Hold"> Houd: </een>
Ik heb het eerste argument van handmatig getransformeerd:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
Aan:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d
(In dit, de open brace transformaties naar % 7b en de afronding brace transformaties naar de %7 d)
De tweede en derde argumenten’ parameters ("FilterField1 =Recruiter" en "FilterValue1 =Houd" respectievelijk) hoeft niet te worden url-gecodeerde omdat ze niet alle onveilige tekens bevatten.
Notities:
Deze techniek moet over het algemeen werken overal die u wilt insluiten van een hyperlink in XSLT waar de hyperlink parameters op de URL zoals bevat:
http://[Server]/[site]/Lists/Open Positions/AllItems.aspx?Weergave ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Ik heb de URL zelf door toegang tot de aangepaste lijst en handmatig filteren op de statuskolom (met het label "Recruiter" boven).