Did you received one of following errors in Sharepoint?
The DataSourceID of 'TopNavigationMenu' must be the ID of a control of type IHierarchicalDataSource. A control with ID 'topSiteMap' could not be found.
or
Exception message: The DataSourceID of 'QuickLaunchMenu' must be the ID of a control of type IHierarchicalDataSource. A control with ID 'QuickLaunchSiteMap' could not be found.
As You propably already find out.. this error is very likely to have nothing in common with masterpages or layouts..
In my case error occured immediately after adding my custom navigation provider to web.config (without even using it!)
What was wrong? Assembly in which was provider was signed and I was not using full assembly string in web.config. Argh.. sometimes I hate sharepoint..
(beside that SafeControl entry is of course also needed)
If above solution does not work in your case try googling more.. a couple of other things causes above errors to appear.
5 replies on “Custom navigation provider in – Sharepoint gives shity errors – part 1”
Hey – don’t blame your bad web.config editing on sharepoint!
I too ran into this – and it is not really specific to not having that particular safecontrol entry
– but however badly formed xml in the web.config
today I am not hating sharepoint too badly (I have definitley been there though)
I had safecontrol entry.
I didn’t use full Assembly String for my navigation provider (in web.config)
Nevertheless If class, method or object cannot be found, have illegal value or whatever I would expect more meaningfull error messages…
Moreover.. that kind of error can be obtain from many other reasons. For me it’s a proof that exceptions handling in Sharepoint is rather poor…
What would you do without dozens of blogs that describes such strange cases?
I’m having this exception right now and this error message is excrutiating.
I hate when dudes when like paisleygo make excuses for the shortcomings of SharePoint. This message leads me nowhere.
I hit this error once again in SP2010 which still has shity error messages.
This time helped adding
NavigationType=”Current” EncodeOutput=”false”
to web.config in navigation provider definition.
What if I have no navigation provider at all?
What need I take out of web.config?