[Fix] SharePoint 2010 – Estilos en el calendario

 

Hace un tiempo, en el trabajo, tuvimos que hacer una presentación de una aplicación a nuestros clientes, no solo a ellos sino a gente que iba a usar la aplicación, a mi jefe y muchos más.

Como siempre el tiempo antes de la Demo se aprovecha para poner a punto todo y revisar que nada esté fallando, y tambien en ese tiempo es donde se encuentra siempre algun bug.

Mientras cargabamos un campo de fecha, al desplegar el calendario nos dimos cuenta que no tenia estilos, se veía como este:

calendar

Lo primero que hicimos fue ver cual era el archivo de estilos del calendario:

.../styles/Themable/datepickerv4.css

Como esto estaba bien, decidimos buscar alguna diferencia entre un calendario que andaba y este que no andaba.

Teniamos acceso a una de nuestrar maquinas donde el calendario andaba bien y pudimos comparar la forma de la url del iFrame.

Lo que descubrimos fue que:

En el iFrame de los calendarios que el estilo estaba bien la URL era:

https://server/subsitio/_layouts/iframe.aspx?...

En el iFrame de los calendarion que el estilo no estaba bien la URL era:

https://server/_layouts/iframe.aspx?...

La diferencia esta en la URL, que el segundo calendario le falta el sub-site, ya que el calendario estaba funcionando en el mismo nivel que el calendario que andaba.

Probamos de modificar como se estaba llamando el iFrame agregandole el sub-sitio a la URL y los estilos comenzaron a andar bien.

Luego buscando en MSDN descubrimos que el DatePicker tiene una propiedad DatePickerFrameURL.

Esta propiedad nos permite especificar la URL del iFrame, por lo que, fuimos a nuestro control de Date Picker y agregamos la siguiente linea:

MyDatePicker.DatePickerFrameUrl = SPContext.Current.Web.ServerRelativeUrl + "/_layouts/iframe.aspx";

Con esta linea lo que hicimos fue decirle al DatePicker, que cada vez que se utilize saque su url del contexto en el que está.

Esta solución arregló nuestro problema en el sistema y tuvimos una feliz Demo.

Nos leemos!

Más información: El blog de Brian Farnhill 

 

Leave a Reply

Your email address will not be published. Required fields are marked *