OPDATERING (01/17/08): Denne blog taler om flere hyperlink XSL-godhed: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Overblik og mål: Jeg havde lavet et simpelt søjlediagram til at tjene som komponent på et dashboard. Jeg vil gemme detaljerne om at opbygge diagrammer til en anden post, men jeg har ikke opfinde teknikken (heller ikke spørgsmålstegn, for sags skyld). Det viste sig der var en fejl i diagrammet, og mens jeg fast, Jeg benyttede lejligheden til at konvertere nogle etiketter til hyperlinks, der peger på den underliggende liste bag grafen. For eksempel, der er en etiket med værdien "Hold". Jeg ønskede at gøre etiketten til et hyperlink, således at brugeren kan klikke på den og bore ned til de specifikke poster på listen værdi hvis status er "Hold".
Trin:
- Brug visual studio for SharePoint-aware intellisense.
- Afskrift den DVWP XSLT i visual studio (oprette et tomt projekt, tilføje en XSL-fil til projektet).
- Kopiere det link, du vil bruge til Udklipsholder.
- Indsætte det i den rigtige placering i XSL.
- Konvertere URL argument separatorer på forespørgselsstreng fra"&" til"&"
- URL-encode enkelte argumenter.
- Wrap at inde en <en href…> </en>
Eksempel:
Jeg har en URL-adresse:
http://[Server]/[site]/Lists/Open Positions/AllItems.aspx?Se ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Jeg konvertere det til:
<en href="Lists/Open Positions/AllItems.aspx?Se = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 %7 d&FilterField1 = Recruiter&FilterValue1 = Hold"> Hold: </en>
Jeg har manuelt omdannet det første argument fra:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
til:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d
(I dette, åben tandbøjle transformeringer til % 7b og afsluttende klammeparentes transformeringer til %7 d)
Den anden og tredje argumenter’ parametre ("FilterField1 =Personalekonsulent" og "FilterValue1 =Hold" henholdsvis) behøver ikke at være url-kodet fordi de ikke indeholder nogen usikre tegn.
Noter:
Denne teknik bør generelt arbejde hvor som helst du vil integrere et hyperlink i XSLT hvor hyperlinket indeholder parametre på URL såsom:
http://[Server]/[site]/Lists/Open Positions/AllItems.aspx?Se ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Jeg fik URLEN ved at få adgang til listen Brugerdefineret og manuelt filtrering på statuskolonnen (mærket "Recruiter" ovenfor).