.aspx page:
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="xmlDs" OnPreRender="TreeView1_PreRender" EnableViewState="false"> </asp:TreeView>
<asp:XmlDataSource ID="xmlDs" runat="server" XPath="Modules/Module"></asp:XmlDataSource>
.aspx.cs page:
#region Expand/Collapse Nodes
protected void TreeView1_PreRender(object sender, EventArgs e)
{
SelectCurrentPageTreeNode(tvNav);
}
private void SelectCurrentPageTreeNode(TreeView tvTreeView)
{
tvTreeView.CollapseAll();
string currentPage = System.IO.Path.GetFileName(Request.Path);
if (currentPage != null)
{
ExpandTreeViewNodes(tvTreeView, currentPage);
}
}
private TreeNode ExpandTreeViewNodes(TreeView tvTreeView, string sPathAndQuery)
{
if (tvTreeView != null)
{
if (!string.IsNullOrEmpty(sPathAndQuery))
{
sPathAndQuery = sPathAndQuery.ToLower();
{
TreeNode tnWorkTreeNode = null;
for (int iLoop = 0; iLoop < tvTreeView.Nodes.Count; iLoop++)
{
tvTreeView.Nodes[iLoop].Expand();
tvTreeView.Nodes[iLoop].Selected = true;
if (tvTreeView.Nodes[iLoop].NavigateUrl.ToLower() == sPathAndQuery)
{
return (tvTreeView.Nodes[iLoop]);
}
else
{
tnWorkTreeNode = ExpandTreeViewNodesR(tvTreeView.Nodes[iLoop], sPathAndQuery);
}
if (tnWorkTreeNode != null)
{
return (tnWorkTreeNode);
}
tvTreeView.Nodes[iLoop].Collapse();
}
}
}
}
return (null);
}
private static TreeNode ExpandTreeViewNodesR(TreeNode tvTreeNode, string sPathAndQuery)
{
TreeNode tnReturnTreeNode = null;
if (tvTreeNode != null)
{
tvTreeNode.Expand();
if (tvTreeNode.NavigateUrl.ToLower() == sPathAndQuery)
{
return (tvTreeNode);
}
else
{
tnReturnTreeNode = null;
for (int iLoop = 0; iLoop < tvTreeNode.ChildNodes.Count; iLoop++)
{
tvTreeNode.ChildNodes[iLoop].Selected = true;
tnReturnTreeNode = ExpandTreeViewNodesR(tvTreeNode.ChildNodes[iLoop], sPathAndQuery);
if (tnReturnTreeNode != null)
{
return (tnReturnTreeNode);
}
}
tvTreeNode.Collapse();
}
}
return (null);
}
#endregion
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="xmlDs" OnPreRender="TreeView1_PreRender" EnableViewState="false"> </asp:TreeView>
<asp:XmlDataSource ID="xmlDs" runat="server" XPath="Modules/Module"></asp:XmlDataSource>
.aspx.cs page:
#region Expand/Collapse Nodes
protected void TreeView1_PreRender(object sender, EventArgs e)
{
SelectCurrentPageTreeNode(tvNav);
}
private void SelectCurrentPageTreeNode(TreeView tvTreeView)
{
tvTreeView.CollapseAll();
string currentPage = System.IO.Path.GetFileName(Request.Path);
if (currentPage != null)
{
ExpandTreeViewNodes(tvTreeView, currentPage);
}
}
private TreeNode ExpandTreeViewNodes(TreeView tvTreeView, string sPathAndQuery)
{
if (tvTreeView != null)
{
if (!string.IsNullOrEmpty(sPathAndQuery))
{
sPathAndQuery = sPathAndQuery.ToLower();
{
TreeNode tnWorkTreeNode = null;
for (int iLoop = 0; iLoop < tvTreeView.Nodes.Count; iLoop++)
{
tvTreeView.Nodes[iLoop].Expand();
tvTreeView.Nodes[iLoop].Selected = true;
if (tvTreeView.Nodes[iLoop].NavigateUrl.ToLower() == sPathAndQuery)
{
return (tvTreeView.Nodes[iLoop]);
}
else
{
tnWorkTreeNode = ExpandTreeViewNodesR(tvTreeView.Nodes[iLoop], sPathAndQuery);
}
if (tnWorkTreeNode != null)
{
return (tnWorkTreeNode);
}
tvTreeView.Nodes[iLoop].Collapse();
}
}
}
}
return (null);
}
private static TreeNode ExpandTreeViewNodesR(TreeNode tvTreeNode, string sPathAndQuery)
{
TreeNode tnReturnTreeNode = null;
if (tvTreeNode != null)
{
tvTreeNode.Expand();
if (tvTreeNode.NavigateUrl.ToLower() == sPathAndQuery)
{
return (tvTreeNode);
}
else
{
tnReturnTreeNode = null;
for (int iLoop = 0; iLoop < tvTreeNode.ChildNodes.Count; iLoop++)
{
tvTreeNode.ChildNodes[iLoop].Selected = true;
tnReturnTreeNode = ExpandTreeViewNodesR(tvTreeNode.ChildNodes[iLoop], sPathAndQuery);
if (tnReturnTreeNode != null)
{
return (tnReturnTreeNode);
}
}
tvTreeNode.Collapse();
}
}
return (null);
}
#endregion
No comments:
Post a Comment