Monday, 24 February 2014

Expand / Collapse a node in ASP.Net TreeView through XML Attribute

.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

No comments:

Post a Comment

Extracting Nupkg files using command line

Rename it to zip first then extract files as below 1.     Rename-Item -Path A_Package.nupkg -NewName A_Package.zip 2.     Make sure to repla...