Asp.net 2.0 Treeview 无限级无刷新示例[转载]

转载:http://www.okajax.com/a/200806/062643G2008.html

 

实现无刷新的小技巧,留着备用。

没什么高深技术,把代码贴出来完了

前台

aspx代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="treeview.aspx.cs" Inherits="treeview" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>无限级无刷新示例</title>
    
<script type="text/javascript">
        
function aa() {
            
//alert('ff');
        }
    
</script>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:TreeView ID="Treeview1" runat="server" ImageSet="XPFileExplorer" AutoGenerateDataBindings="false" onclick="aa()"
            ExpandDepth
="0" OnTreeNodePopulate="Treeview1_TreeNodePopulate" ShowCheckBoxes="Parent" EnableClientScript="true" >
            
<SelectedNodeStyle BackColor="#B5B5B5"></SelectedNodeStyle>
            
<Nodes>
                
<asp:TreeNode Value="E:" Text="E:" 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>


 后台代码

.cs代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class treeview : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    {

    }

    
protected 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);
        }
    }


}


 

posted @ 2010-03-04 11:07  卒子  阅读(232)  评论(0)    收藏  举报