xml配置文件以下(URL地址並未所有填寫,主要用於測試):
<?xml version="1.0" encoding="utf-8" ?>
<menu>
<住房信息 >
<住房管理>~/Web/Default.aspx</住房管理>
<職工住房信息 >~/Web/Default2.aspx</職工住房信息 >
<職工貨幣化管理 > </職工貨幣化管理 >
<職工貨幣化查看 > </職工貨幣化查看>
</住房信息>
<傢俱數據管理>
<傢俱數據維護></傢俱數據維護>
</傢俱數據管理>
<系統文章管理>
<系統文章維護> </系統文章維護>
</系統文章管理>
<教職工信息>
<教職工信息維護></教職工信息維護>
</教職工信息>
<系統操做>
<退出系統></退出系統>
</系統操做>
</menu>
頁面綁定數據代碼:
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XDS" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" NodeIndent="8">
<ParentNodeStyle BackColor="White" ChildNodesPadding="5px" Font-Bold="False" Font-Italic="False" />
<RootNodeStyle Font-Bold="True" ForeColor="#000040" Font-Size="13pt" />
<NodeStyle Font-Bold="False" />
<LeafNodeStyle Font-Bold="False" Font-Size="11pt" ForeColor="Teal" />
</asp:TreeView>
<asp:XmlDataSource ID="XDS" runat="server" DataFile="~/Web/Master/gp_menu.xml" XPath="/menu/*">
</asp:XmlDataSource>
後臺的單擊代碼:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
XmlDocument XDoc = new XmlDocument(); XDoc.Load(Server.MapPath("~/Web/Master/gp_menu.xml")); //得到menu配置文件 XmlNodeList XNodeList = XDoc.DocumentElement.ChildNodes; //得到該文件跟節點的全部子節點 List<string> list = new List<string>(); //定義一個list用來保存父節點 XmlNode XNode; int i; //簡單計數功能 for (i = 0; i < XNodeList.Count; i++ ) //遍歷全部根結點的子節點也就是菜單中的父節點 { XNode = XNodeList.Item(i); list.Add(XNode.Name); //將節點的名字加入到list中 } TreeNode sltNode = TreeView1.SelectedNode; bool isParent = false; //查看選擇節點是否爲父節點 for (i = 0; i < list.Count; i++ ) { if (list[i] == sltNode.Text) { sltNode.ToggleExpandState(); //選擇節點爲父節點時,使該節點在展開和摺疊狀態轉換 isParent = true; //標記該節點爲父節點 sltNode.Selected = false; //若是不設置爲false 當連續點擊同一個父節點時不會觸發該函數 break; } } //選擇結點爲子節點 if (false == isParent) { string dpath = ""; string url = ""; dpath = sltNode.DataPath; //得到選擇結點的路徑 // eg. /*[position()=1]/*[position()=2]/*[position()=1] 選擇了第二個父節點的第一個子節點 dpath = dpath.Substring(30, 1); //得到 第二層路徑的深度值(從1開始計數的) XNode = XNodeList.Item(Convert.ToInt32(dpath) - 1); url = XNode[sltNode.Text].InnerText; //得到選擇節點的值(即頁面地址) Response.Redirect(url); //跳轉頁面 } }