UPPDATERING (01/17/08): Detta blogginlägg talar om mer hyperlänk XSL godhet: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Översikt och mål: Jag hade skapat ett enkelt liggande diagram som komponent på en instrumentpanel. Jag ska spara information om att bygga diagram för en annan tjänst, men jag uppfinna inte denna teknik (inte heller frågetecken, för övrigt). Det visade sig att det var en bugg i diagrammet och medan jag fixade som, Jag passade på att konvertera några etiketter till hyperlänkar som pekade på den underliggande listan bakom grafen. Till exempel, Det finns en etikett med värde "Hold". Jag ville göra etiketten till en hyperlänk så att användaren kan klicka på den och gå ned till de specifika adresserna i listan vars statusvärde är "Hold".
Steg:
- Använd visual studio för SharePoint-medveten intellisense.
- Kopiera den DVWP XSLT till visual studio (skapa ett tomt projekt, lägger till en XSL-fil i projektet).
- Kopiera in länken som du vill använda till Urklipp.
- Klistra in det i rätt plats i XSL.
- Konvertera URL-argumentet avgränsare på frågesträngen från"&" till"&"
- URL-koda individuella argument.
- Radbryt att insidan en <en href…> </en>
Exempel:
Jag har en URL:
http://[servern]/[webbplats]/Lists/Open Positions/AllItems.aspx?Visa ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Rekryterarens&FilterValue1 = Hold
Jag omvandla den till:
<en href="Lists/Open Positions/AllItems.aspx?Visa = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7 d&FilterField1 = Rekryterarens&FilterValue1 = Hold"> Håll: </en>
Jag har manuellt förändrat det första argumentet från:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
till:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1% 7 d
(I detta, Öppna klammerparentes transformeringar till % 7b och avslutande hängslen transformeringar till % 7 d)
De andra och tredje argument’ parametrar ("FilterField1 =Rekryterarens" och "FilterValue1 =Håll" respektive) behöver inte vara url-kodade eftersom de inte innehåller några osäkra tecken.
Anteckningar:
Denna teknik bör generellt arbeta var du vill bädda in en hyperlänk i XSLT där hyperlänken innehåller parametrar i URL-adressen som:
http://[servern]/[webbplats]/Lists/Open Positions/AllItems.aspx?Visa ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Rekryterarens&FilterValue1 = Hold
Jag fick den URL-adressen själv genom att besöka den anpassade listan och manuellt filtrering på statuskolumnen (märkt "Rekryterarens" ovan).