Introducir jQuery en Sharepoint 2010
abr.
17
Escrito el:
17/04/2012
Cada vez más, jQuery se convierte en una librería ECMAScript de referencia.
Sharepoint 2010 incluye ya de base unas librerías bastante completas para manejar desde el lado de cliente objetos de Sharepoint, diálogos modales, etc.
Todos ellos los tenemos documentados aquí en la MSDN:
http://msdn.microsoft.com/en-us/library/ee538253.aspx
Aún así, muchos preferimos complementar estas librerías con las ya conocidas y extendidas de jQuery.
La mejor manera de incluirlas para poder usarlas desde nuestros proyectos de desarrollo es mediante un proyecto que incluya:
- /layouts/jquery/js/jquery-1.5.1.min.js
- /layouts/jquery/js/jquery-ui-1.8.10.custom.min.js
- /layouts/jquery/js/jquery.urldecoder-min.js
- /controltemplates/includes.ascx
<
link
href
=
"/_layouts/jquery/css/jquery-ui-1.8.10.custom.css"
rel
=
"stylesheet"
type
=
"text/css"
/>
<
script
type
=
"text/javascript"
src
=
"/_layouts/jquery/js/jquery-1.5.1.min.js"
>script
>
<
script
type
=
"text/javascript"
src
=
"/_layouts/jquery/js/jquery-ui-1.8.10.custom.min.js"
>script
>
<
script
type
=
"text/javascript"
src
=
"/_layouts/jquery/js/jquery.urldecoder-min.js"
>script
>
En mi caso, he elegido por incluir siempre jQuery, jQuery-UI, y un plugin llamado urldecoder, que resulta bastante útil para descodificar algunas cadenas que están URLEncoded.
Lógicamente, cuantas más referencias a estilos CSS y archivos JS, el tiempo de carga de nuestras páginas será mayor, por lo que tampoco conviene abusar en exceso.
ControlDelegate
Lo que haremos es incluir este UserControl en un ControlDelegate que existe en todas las páginas maestras de Sharepoint: AdditionalPageHead, consiguiendo por tanto, que todas las páginas incluyan tanto los estilos.
El ámbito de la Feature dependerá de las necesidades concretas del proyecto.
Para ello, nuestra Feature incluirá un Elements.xml con este contenido:
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
Control
Id
=
"AdditionalPageHead"
ControlSrc
=
"~/_controltemplates/Internav.UIControls/Includes.ascx"
Sequence
=
"1"
/>
Elements
>