ACTUALIZACIÓN (01/17/08): Esta entrada de blog habla de hipervínculo más bondad XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.
Introducción y objetivo: Que había creado un simple gráfico de barras para servir como componente en un tablero de instrumentos. Ahorraré los detalles en la construcción de tablas para otro post, pero yo no inventó esta técnica (ni el signo de interrogación, de eso se trata). Resultó que había un error en la tabla y mientras fijo, Tomé la oportunidad de convertir algunas etiquetas en los hipervínculos que apuntaron a la lista subyacente detrás de la gráfica. Por ejemplo, hay una etiqueta con el valor "Hold". Quería convertir la etiqueta en un hipervínculo para que el usuario pudiera haga clic sobre él y perforar hasta las entradas específicas de la lista cuyo valor de estado es "Hold".
Pasos:
- Utilizar visual studio intellisense consciente de SharePoint.
- Copia XSLT del DVWP en visual studio (crear un proyecto en blanco, Agregar un archivo XSL al proyecto).
- Copie el vínculo que desee utilizar en el Portapapeles.
- Pegar en la ubicación correcta en el XSL.
- Convertir separadores de argumento de URL en la cadena de consulta de"&" "&gm6;"
- Codificar URL argumentos individuales.
- Ajustar ese dentro un <a href…> </un>
Ejemplo:
Tengo una dirección URL:
http://[servidor]/[sitio]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = reclutador&FilterValue1 = Hold
Convertirlo en:
<un href="Lists/Open Positions/AllItems.aspx?Vista = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7D&gm6;FilterField1 = reclutador&gm6;FilterValue1 = Hold"> Mantenga: </un>
He transformado manualmente el primer argumento de:
{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}
Para:
%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1% 7D
(En este, las transformaciones de la llave de apertura para 7b % y el cierre llave transforma a 7% d)
Los argumentos de segundo y terceros’ parámetros ("FilterField1 =Reclutador" y "FilterValue1 =Mantenga" respectivamente) no necesita ser codificado en url porque no contienen caracteres no seguros.
Notas:
Esta técnica generalmente debe trabajar en cualquier lugar que desee incrustar un hipervínculo en XSLT donde el hipervínculo incluye como parámetros en la URL:
http://[servidor]/[sitio]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = reclutador&FilterValue1 = Hold
Tengo la misma URL por acceder a la lista personalizada y filtrado manualmente en la columna Estado (etiquetado "reclutador" por encima de).