I-UPDATE (01/17/08): Ang blog entry uusap tungkol sa mas kabutihan hyperlink XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Pangkalahatang-ideya at Layunin: I had created a simple bar chart to serve as component on a dashboard. I’ll save the details on building charts for another post, ngunit hindi ko na kumatha diskarteng (o ang mga tandang pananong, para sa na mahalaga). It turned out there was a bug in the chart and while I fixed that, I took the opportunity to convert some labels into hyperlinks that pointed at the underlying list behind the graph. Halimbawa, there is a label with value "Hold". I wanted to turn the label into a hyperlink so that the user could click on it and drill down to the specific entries in the list whose status value is "Hold".
Mga Hakbang:
- Gamitin ang visual studio para sa sharepoint-aware intellisense.
- Kopyahin ang DVWP ni XSLT sa visual studio (lumikha ng isang blangko proyekto, magdagdag ng isang XSL file sa proyekto).
- Kopyahin ang link na gusto mong gamitin sa clipboard.
- Ilagay ito sa tamang lokasyon sa XSL.
- Convert URL argument separators on the query string from "&" to "&"
- Url-encode ang mga indibidwal na mga argumento.
- Pakibalot na sa loob ng isang <a href…> </isang>
Halimbawa:
Mayroon akong isang URL:
http://[server]/[lugar]/Listahan / Buksan ang% 20Positions/AllItems.aspx?Tingnan ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
I-convert ito sa:
<isang href="Listahan / Buksan ang% 20Positions/AllItems.aspx?Tingnan =% 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7a&FilterField1 = Recruiter&FilterValue1 = Hold"> Hawakan: </isang>
Manu-mano ko pa transformed ang unang argumento mula sa:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
upang:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1% 7a
(Sa ganitong, Bukas ang suhay transforms sa% 7b at ang pangwakas suhay transforms sa% 7a)
Ang pangalawa at pangatlong argumento’ mga parameter ("FilterField1=Recruiter" and "FilterValue1=Hawakan" buong galang) hindi kailangang ma-url-encode nang dahil hindi sila naglalaman ng anumang hindi ligtas na mga character.
Mga Tala:
Diskarteng ito ay dapat pangkalahatan ay gumagana sa kahit saan nais mong i-embed ng isang hyperlink sa XSLT hyperlink kung saan ang may kasamang mga parameter sa URL tulad ng:
http://[server]/[lugar]/Listahan / Buksan ang% 20Positions/AllItems.aspx?Tingnan ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Nakatanggap ako ang URL mismo sa pamamagitan ng pag-access ang listahan ng custom at mano-manong pag-filter sa hanay ng katayuan (labeled "Recruiter" sa itaas).