17 May 2004
21 Feb 2009
Link to this post
There is an inconsistency with nested master pages and placeholders which caused me quite some headache, may be you want to fix it:
if a page is based on a template with master page "x" which has a root master page "y", and "y" has a placeholder which is not again defined in "x", then I can edit the placeholder content in the actual web page only if the placeholder has no content defined in the pages template based on master file "x". If I define content in the placeholder in template "x", I cannot edit the placeholder content in the actual page anymore.
So far so good, this is by design.
However, I had this happening:
Initially, the placeholder was left empty in the template, so I could edit the content of the placeholder in all the pages which are basded on the template.
Later, I added some content to the placeholder in the template itself, because I wanted a unified content across all pages. As expected and desired, the placeholder now was not editable anymore in the actual pages based on this template.
However, the content initially placed into the placeholder on the page level still showed up in the life page. There was no way to remove it from the page, since the placeholder was not editable anymore on the page level.
Because I had long forgotten about having added some content to the placeholder on the page level, and since I could not see the controls I had added on the page level since on the page level the placeholder was not editable anymore, it took me a while to discover my error.
I guess, the desired behavior is, in this case, that consistently, if such a placeholder has content defined in the template based on the child master page, and if this placeholders content is not editable on the page level, content previously defined on the page level should not show either. Or, this is a feature (I can add page specific controls to the placeholder without the page editors being able to change it) but then it should be documented.