lunes, 8 de marzo de 2010

Diferencia entre SPContext.Current.FormContext.FormMode Y WebPartManager.DisplayMode en el Modelo de Objetos en SharePoint

Esto es muy útil cuando conocer cuando estamos escribiendo código personalizado para Elementos Web desde Visual Studio y necesitamos que se comporte de una forma cuando esta en modo de edición la página o el elemento Web especialmente cuando tengamos alguna animación o acción que nos afecta el editar la página para mantenimiento ya sea para modificar un valor de una propiedad de un elemento web.

SPContext.Current.FormContext.FormMode Este nos indica cuando está en modo de edición la página.  Ojo que si no es un sitio de publicación el modo de edición no se detecta hasta el momento de editar la página.  Los valores permitidos puede encontrarlos en el enumerador SPControlMode como se muestra en la imagen de abajo.

image

Cuando deseamos conocer el estado del Elemento Web del código que estamos desarrollando La propiedad DisplayMode del objeto WebPartManager.DisplayMode nos devuelve el estado actual del mismo entre los valores a retornar están:EditDisplayMode, BrowseDisplayMode, DesignDisplayMode que se obtienen del mismo objeto WebPartManager.

Un breve ejemplo de su uso:

 if (SPContext.Current.FormContext.FormMode != SPControlMode.Edit)
            {
                var sb = new StringBuilder("<script type='text/javascript'>");
                sb.Append("$(document).ready(function() {");
                sb.Append(string.Format("$('.{0}').vAlign();", ClaseEstilo));
                sb.Append(string.Format("$('.{0}').hAlign();", ClaseEstilo));
                sb.Append("});");
                sb.Append("</script>");
                Controls.Add(new LiteralControl { Text = sb.ToString() });
            }


En resumen el objeto SPFormContext nos devuelve el estado de la página y el objeto SPWebPartManager el del Elemento Web.



Code4Fun!,



Manolo Herrera

No hay comentarios.: