OPPDATERINGEN (01/17/08): Dette blogginnlegget snakker om mer hyperkobling XSL godhet: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Oversikt og mål: Jeg hadde laget et enkelt stolpediagram som komponent på et instrumentbord. Jeg vil lagre detaljene på å bygge diagrammer for en annen post, men jeg fant ikke opp det teknikken (eller spørsmålstegnet, for saks skyld). Det viste seg det var en feil i diagrammet, og mens jeg løst som, Jeg benyttet anledningen til å konvertere noen etiketter i hyperkoblinger som pekte på den underliggende listen bak diagrammet. For eksempel, Det er en etikett med verdien "Hold". Jeg ønsket å slå etiketten til en hyperkobling, slik at brukeren kan klikke på den og gå til bestemte oppføringer i listen som er "Hold".
Trinn:
- Bruk visual studio for å SharePoint-aware intellisense.
- Kopier den DVWP XSLT til visual studio (opprette et tomt prosjekt, Legg en XSL-fil til prosjektet).
- Kopiere koblingen du vil bruke til utklippstavlen.
- Lim den inn i den riktige lokasjonen i XSL.
- Konvertere URL argumentet skilletegn på spørsmålet hyssing fra"&" til"&"
- URL-kode argumenter.
- Vikle den inne en <et href…> </en>
Eksempel:
Jeg har en URL-adresse:
http://[Server]/[nettstedet]/Lists/Open Positions/AllItems.aspx?Vis ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutterer&FilterValue1 = vent
Jeg konvertere den til:
<en href="Lists/Open Positions/AllItems.aspx?Vis = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 %7 d&FilterField1 = rekrutterer&FilterValue1 = vent"> Hold: </en>
Jeg har manuelt forvandlet det første argumentet fra:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
til:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d
(I dette, åpningsparentes transformeringene til % 7b og avsluttende klammeparentes transformeringer til %7 d)
Andre og tredje argumentene’ parametere ("FilterField1 =Rekrutterer" og "FilterValue1 =Hold" henholdsvis) trenger ikke å være url-kodede fordi de ikke inneholder usikre tegn.
Notater:
Denne teknikken bør generelt arbeide hvor som helst du vil bygge inn en hyperkobling i XSLT der hyperkoblingen inneholder parameterne i Webadressen som:
http://[Server]/[nettstedet]/Lists/Open Positions/AllItems.aspx?Vis ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutterer&FilterValue1 = vent
Jeg fikk selve Webadressen ved tilgang til den egendefinerte listen og manuelt filtrering på statuskolonnen (merket "rekrutterer" ovenfor).