Custom Layout Pages, FieldName, and the Infrastructure Update
This one wasted several hours of an otherwise productive day. I was working on a demo site with a bunch of DVWP’s and custom pages when I noticed that all the publishing zones in my layout pages had disappeared. I could edit the list item and see the fields from my content type but when I edited the page they weren’t there – just my web part zones all by their lonesome. No errors, no nothing – just empty content. After scratching my head for a while and double-checking all my Features I noticed that some test pages I created with SPD were working just fine but they were using the DisplayName to call the site column. My broken layout pages, which were deployed as part of a publishing feature, were using the StaticName value. Hmmm…another hidden gem from a hotfix, perhaps?
Yup. I checked the version history and noticed that I had updated my test server to the Infrastructure Update just before all my layouts went wonky. Apparently, prior to the IU, when creating a custom layout page (either via SharePoint Designer or as part of a Feature), you were allowed to specify either the StaticName value or the DisplayName value for your site columns. Not so afterwards; you must now use the DisplayName property exclusively for the FieldName value on layout pages.
Why do they do this to us? Doesn’t anybody ever document this stuff? Who decides what gets changed in a hotfix/update that breaks previously working functionality? Isn’t there any regression testing going on in Redmond or have they downsized that function???
Sigh. This is why I drink…