How to create custom navigation menu in SharePoint with XML data sourceDid you ever wanted to create completely custom menu in SharePoint and use some common way to manage the navigation nodes?
In this post I’ll show you how to build custom navigation with an XML file as a navigation source and treeview as display control.
And what is the benefit of this approach?
Because
navigation nodes are defined in XML file, nodes can be managed manually
or retrieved automatically. XML file can be retrieved from anywhere or
even constructed and manipulated by custom code. One of simpler
approaches would be even to have data source available as XML web
service.
Maybe you even have an XML schema already defined somewhere and you just reuse it….
Create navigation source
Create sample xml file with nodes that should be displayed in navigation menu.<?xml version="1.0" encoding="utf-8" ?> <Menu name="MyNavigation"> <Folder name="Technical Links"> <Node name="Microsoft" url="http://www.microsoft.com"></Node> <Node name="MSDN" url="http://www.msdn.com"></Node> <Node name="TechNet" url="http://technet.microsoft.com"></Node> </Folder> <Folder name="Links"> <Node name="My Blog" url="http://blogs.msdn.com/matjazperpar"></Node> <Node name="Microsoft Slovenia" url="http://www.microsoft.com/slovenija"></Node> </Folder> </Menu>Save file as “MyNavSource.xml” on SharePoint. I used Pages library for this post.
Create blank aspx file
On SharePoint create a blank aspx file and save it as “NavigationPost.aspx”.Add SPXMLDatasource in NavigationPost.aspx
- Click on a “Data Source Library”.
- Under XML Files create new data source by clicking “Add an XML file…”
- Point “Source” to XML file created at the beginning (MyNavSource.xml)
- In Data Source Library click on MyNavSource.xml and then select “Insert Data Source Control”
Add TreeView control
- Select Toolbox
- Insert TreeView
- Click on TreeView and set Data Source to SPXmlDataSource1
- File NavigationPost.aspx should now look like this:
- In a browser is should look like this:
- Because sample XML file uses attributes name and url edit the DataBindings for TreeView control
- For node set binding as set on picture
- Preview should look like this:
- Autoformat the treeview if necessary…
- In SharePoint Designer click Format, Master Page, Attach Master Page
Comments