If you ever got this message and don’t know where it came from, here is the solution.
I got it if I click on “Edit Page” on a publishing page. So after some investigation it seems to be a problem with the web parts on the page.
My page layout contains some EditModePanels, so the user have different views in display and edit mode of the page. Therefore we also have one web part in a web part zone which is in one of the EditModePanels for display only.
<PublishingWebControls:EditModePanel PageDisplayMode="Display"…> <WebPartZone ID="zone1" ...> the web part added through the onet.xml site definition
The same web part zone “zone1” does not exists for editing, because I do not want the user to edit the web part. There is another web part zone “zone2” which lives outside of any EditModePanel.
Now comes SharePoint.
If you check out the page and then click on “Edit Page”, everything is working. Except of, that the web part from zone 1 has moved to zone 2! Automatically! Thank you SharePoint…
It seems that SharePoint think it has to show the web part in edit mode. And because the original web part zone is not visible, SharePoint moves the web part to the next available zone which is visible also in edit mode.
So remember:
Never put a web part zone in an EditModePanel which is only visible in display mode.
Maybe the solution is to make the web part not editable, but I didn’t tested this. My fast workaround hack is to create a div instead of the EditModePanel and makes it “runat=server” and give it an ID. Then I wrote this code on top of the page:
<script runat="server"> protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.navleftdiv.Visible = (this.SPWebPartManager1.DisplayMode == WebPartManager.BrowseDisplayMode); } </script>
Now it works like a charm.