ACTUALIZARE (01/17/08): Acest blog intrare vorbeşte despre mai multe hyperlink XSL bunătatea: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Privire de ansamblu şi obiectivul: Am creat un simplu bar diagramă pentru a servi drept componentă pe un tablou de bord. Voi salva detaliile pe construirea grafice pentru un alt post, dar eu nu a inventat această tehnică (nici semnul de întrebare, pentru care contează). Sa dovedit a existat un bug în diagramă, şi în timp ce am stabilit că, Am avut posibilitatea de a converti unele etichete în hyperlink-uri, care a arătat la lista de bază în spatele grafic. De exemplu, Există o etichetă cu valoarea "Hold". Am vrut să transforme etichetă într-un hyperlink, astfel încât utilizator putea faceţi clic pe ea şi detalia la intrările specifice din lista a căror valoare de stare este "Hold".
Paşi:
- Utilizarea visual studio pentru intellisense SharePoint-conştient.
- Copiaţi DVWP XSLT în visual studio (crea un proiect necompletat, Adauga un fișier XSL la proiect).
- Copiaţi link-ul pe care doriţi să utilizaţi în clipboard.
- Lipiţi-l în locul potrivit în XSL.
- Conversia URL argumentul separatoare pe şirul de interogare la"&" la"&"
- Argumente individuale URL-encode.
- Wrap interior că o <a href…> </o>
Exemplu:
Eu am un URL:
http://[server de]/[site-ul]/Lists/Open Positions/AllItems.aspx?Vezi ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Conversia în:
<o href="Lists/Open Positions/AllItems.aspx?Vezi = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 %7 d&FilterField1 = Recruiter&FilterValue1 = Hold"> Ţineţi: </o>
Am manual au transformat primul argument din:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
pentru a:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 %7 d
(În acest, transformă acolada de deschidere a % 7b și închiderea bretele transformă %7 d)
Al doilea şi al treilea argumentele’ parametrii ("FilterField1 =Recruiter" şi "FilterValue1 =Ţineţi" respectiv) nu trebuie să fie codificate în URL-ul pentru că ele nu conțin nici caractere nesigure.
Note:
Aceasta tehnica, în general, ar trebui să funcţioneze oriunde doriţi să încorporaţi un hyperlink în XSLT unde hyperlink-ul include parametrii pe URL-ul cum ar fi:
http://[server de]/[site-ul]/Lists/Open Positions/AllItems.aspx?Vezi ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Am luat URL-ul în sine prin accesarea listă particularizată şi manual de filtrare pe coloana stare (etichetate "recrutorului" de mai sus).