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.