MISE À JOUR (01/17/08): Cette entrée de blog parle plus de lien hypertexte bonté XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Présentation et objectif: J'avais créé un graphique à barres simple pour servir de composant sur un tableau de bord. Je vais enregistrer les détails sur la création de graphiques pour un autre poste, mais je n'a pas inventé cette technique (ni le point d'interrogation, d'ailleurs). Il s'est avéré il y avait un bug dans le tableau, et alors que je fixe, J'en ai profité pour convertir quelques étiquettes converties en liens hypertexte qui pointait à la liste sous-jacente derrière le graphique. Par exemple, Il y a une étiquette avec la valeur « Hold ». Je voulais tourner l'étiquette en lien hypertexte afin que l'utilisateur puisse cliquer dessus et forer vers le bas pour les entrées spécifiques dans la liste dont valeur d'État est « Hold ».
Étapes:
- Studio visuel d'utilisation pour intellisense SharePoint-conscient.
- Copier XSLT du DVWP dans visual studio (créer un projet vide, Ajoutez au projet un fichier XSL).
- Copier le lien que vous souhaitez utiliser dans le presse-papiers.
- Coller dans le bon emplacement dans le XSL.
- Convertir des séparateurs d'argument URL sur la chaîne de requête de »&" »&"
- URL-encode les arguments individuels.
- Envelopper l'intérieur un <a href…> </un>
Exemple:
J'ai une URL:
http://[serveur]/[site]/Lists/Open Positions/AllItems.aspx?Point de vue ={84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}&FilterField1 = recruteur&FilterValue1 = attente
Convertir en:
<un href="Lists/Open Positions/AllItems.aspx?Vue = % 7b84EEA2F5-121 b-40B7-946F-
0FA704A1DAA1 7 % d&FilterField1 = recruteur&FilterValue1 = attente"> Cale: </un>
J'ai transformé manuellement le premier argument de:
{84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}
À:
%7b84EEA2F5-121 b-40B7-946F-0FA704A1DAA1 7 % d
(Dans cette, les transformations de l'accolade ouverte à 7 % et la fermeture préparer se transforme à 7 % d)
Les deuxième et troisième arguments’ paramètres (« FilterField1 =Recruteur" et « FilterValue1 =Cale" respectivement) ne devez pas être codée en url parce qu'ils ne contiennent pas tous les caractères non sécuritaires.
Notes:
Cette technique devrait généralement travailler n'importe où que vous souhaitez intégrer un lien hypertexte dans XSLT où le lien hypertexte inclut les paramètres de l'URL comme:
http://[serveur]/[site]/Lists/Open Positions/AllItems.aspx?Point de vue ={84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}&FilterField1 = recruteur&FilterValue1 = attente
J'ai obtenu l'URL elle-même en accédant à la liste personnalisée et de filtrer manuellement sur la colonne de statut (étiquetée « recruteur" au-dessus de).