¿Está una página en modo edición?

En muchas ocasiones me he preguntado si existe alguna forma de saber si una página esta en modo de edición o no, para personalizar el contenido que se muestra en cada uno de los modos. Navegando por internet, he encontrado como se hace, y la verdad es que es bastante simple, cuando se conoce.

Se puede utilizar desde una página o control de usuario en aspx, de modo que todo lo que esté dentro de la etiqueta sólo se mostrará si esta en el modo que se especifica en la propiedad.

<PublishingWebControls:EditModePanel runat=server id=”idEditPanel” PageDisplayMode=”Display”>

<!- – Controles definidos en esta zona se muestran en modo visualización – ->

</PublishingWebControls:EditModePanel>

 

<PublishingWebControls:EditModePanel runat=server id=”idEditPanel1″ PageDisplayMode=”Edit”>

<!- – Controles definidos en esta zona se muestran en modo edición- ->

</PublishingWebControls:EditModePanel>

Si se necesita realizar la comprobación mediante código fuente:

if( SPContext.Current.FormContext.FormMode == SPControlMode.Edit)

 Cabe destacar que en el caso de los webparts, será necesarios utilizar la propiedad de WebPartManager.DisplayMode

Dejo unos enlaces para ampliar la información.

WebPartManager.DisplayMode Property

SPControlMode Enumeration