Asp.net 2.0 Treeview 无限级无刷新示例

网络整理 - 08-07

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "">

<script runat="server">

    void Treeview1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
       if (IsCallback)
            if (e.Node.ChildNodes.Count == 0)
            {
                LoadChildNode(e.Node);
            }
      
    }

    private void LoadChildNode(TreeNode node)
    {
       
        DirectoryInfo directory;
        directory = new DirectoryInfo(node.Value);     

        foreach (DirectoryInfo sub in directory.GetDirectories())
        {
        
            TreeNode subNode = new TreeNode(sub.Name);
            subNode.Value = sub.FullName;

            try
            {
                if (sub.GetDirectories().Length > 0 || sub.GetFiles().Length > 0)
                {
                    subNode.SelectAction = TreeNodeSelectAction.SelectExpand;
                    subNode.PopulateOnDemand = true;
                    subNode.NavigateUrl = "#";
                }
           }
            catch { subNode.ImageUrl = "WebResource.axd?a=s&r=TreeView_XP_Explorer_ParentNode.gif&t=632242003305625000"; }
            node.ChildNodes.Add(subNode);
           
        }

        foreach (FileInfo fi in directory.GetFiles())
        {
            TreeNode subNode = new TreeNode(fi.Name);
            node.ChildNodes.Add(subNode);
        }
    }
   
   
</script>

<html xmlns="" >
<head runat="server">
    <title>Untitled Page</title>
</head>

<body bgcolor="white">
    <form id="form1" runat="server">
    <div>
    <asp:treeview ID="Treeview1" runat="server" ImageSet="XPFileExplorer" AutoGenerateDataBindings="false" ExpandDepth=0
        OnTreeNodePopulate="Treeview1_TreeNodePopulate"
    >
        <SelectedNodeStyle BackColor="#B5B5B5"></SelectedNodeStyle>
        <Nodes>
            <asp:TreeNode Value="C:" Text="C:" PopulateOnDemand="true" SelectAction="Select" NavigateUrl="#" >
            </asp:TreeNode>
        </Nodes>
        <NodeStyle VerticalPadding="2" Font-Names="Tahoma" Font-Size="8pt" HorizontalPadding="2"
            ForeColor="Black"></NodeStyle>
        <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA"></HoverNodeStyle>
    </asp:treeview>
    </div>
    </form>
</body>
</html>