Recently i had been into scenario where i have to change the default top navigation menu provided by MOSS OOB to a customized menu. Typically the navigation menu has site tabs.
I create the user control Menu and started to Integrate with the master page of the site.
I followed the following steps to add a user control to default.master
a. Register the user control
b. Import the namespace of the usercontrol
c. Register the dll of the usercontrol
d. Commented out the sharepoint:aspmenu contro with id =”TopNavigationMenu”
e. Add my user control in the place of the above commented control
f. Added the dll to the gac
g. Added safe control entries to the web.config file fo the site.
I was happy to see the change on my site with new menu control. But that was not my final task, when I clicked on the View All Site Content link on the site, I saw that the my customized menu control was not rendering over this page. Later I found out that all the list level page and site collection level pages had the OOB menu. After searching on net I found a article on MSDN which fixed my problem.
There are 2 solutions for this problem, since my website was a site collection, I followed the second approach.
I made the modification in the application. master in the same way as default. master. It worked well for me. Both the approach have certain limitations and disadvantages. If anyone has an alternate approach for this, feel free to leave a comment