SharePoint : SPWeb.AlternateHeader issue – does not accept empty “” string

Recently I see this problem in SPWeb object. I have configured the alternate header in the onet.xml. I created the sites. Now I want to revert back the alternate header configured and set it to empty. As we know already, what ever the modification made on the onet.xml will be picked up by the newly created sites but not by the sites existing. So I decided to use the SPWeb.AlternateHeader. property. But unfortunately that doesn’t work. It accepts all the values except the empty string “”, or null values.

 

The following code don’t work

 

            SPWeb web = new SPSite(http://karthickmain::8081/sites/test1).OpenWeb();

            web.AlternateHeader = “”;

            web.Update();

 

Note: The following workarounds are not supported by Microsoft

 

Workaround # 1:

            The webs table of <portal>_SITE contains the AlternateHeader value of the site. Open the table and modify the value

           

            This way you modified the alternate header for existing sites. But however still the API wont work.

 

Workaround #2:

            When you set the web.AlternateHeader=””, and call the web.Update() method, the stored procedure proc_UpdateTpWebMetaData of <portal>_SITE database is being called. Open this stored procedure in the Enterprise manager. You will find the following the checking happens.

 

AlternateHeaderUrl = CASE WHEN @AlternateHeaderUrl IS NULL

                                  THEN AlternateHeaderUrl

                                  ELSE @AlternateHeaderUrl END,

 

Change this to

 

AlternateHeaderUrl = @AlternateHeaderUrl END,

 

 

            This way you have modified the stored proc, then rerun the code to modify the AlternateHeader.