AGGIORNAMENTO (01/17/08): Questo blog parla di collegamento ipertestuale più bontà XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Panoramica e obiettivo: Avevo creato un semplice grafico a barre per servire come componente in un dashboard. I'll salvare i dettagli sulla costruzione di grafici per un altro post, ma non ha inventato quella tecnica (né il punto interrogativo, per quanto riguarda). Si è scoperto che c'era un bug nel grafico, e mentre io fisso che, Ho colto l'occasione per convertire alcune etichette in collegamenti ipertestuali che puntava alla lista sottostante dietro il grafico. Per esempio, C'è un'etichetta con valore "Hold". Ho voluto girare l'etichetta in un collegamento ipertestuale in modo che l'utente potrebbe fare clic su di esso e drill-down per le specifiche voci nell'elenco cui valore dello stato è "Hold".
Passi:
- Visual studio uso per SharePoint supporto intellisense.
- Copia XSLT di DVWP in visual studio (creare un progetto vuoto, aggiungere al progetto un file XSL).
- Copiare il link che si desidera utilizzare negli Appunti.
- Incollarlo nella giusta posizione in XSL.
- Convertire separatori argomento URL sulla stringa di query da"&" a"&"
- Codifica URL singoli argomenti.
- Avvolgere quel dentro un <href…> </un>
Esempio:
Ho un URL:
http://[server]/[sito]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Convertirlo in:
<un href="Lists/Open Positions/AllItems.aspx?Vista = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 7% d&FilterField1 = Recruiter&FilterValue1 = Hold"> Tenere premuto: </un>
Io ho trasformato manualmente il primo argomento da:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
A:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 7% d
(In questo, le trasformazioni di parentesi graffa aperta a 7b % e la chiusura graffa aperta si trasforma al 7% d)
Gli argomenti di secondo e terzi’ parametri ("FilterField1 =Reclutatore" e "FilterValue1 =Tenere premuto" rispettivamente) non è necessario essere codificata in url perché non contengono caratteri non sicuri.
Note:
Questa tecnica in generale dovrebbe lavorare ovunque che si desidera incorporare un collegamento ipertestuale in XSLT dove il collegamento ipertestuale include i parametri sull'URL quali:
http://[server]/[sito]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold
Ho ottenuto l'URL stesso accedendo all'elenco personalizzato e filtro manualmente su nella colonna Stato (classificati come "Recruiter" di sopra).