博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ASP.NET]Treeview 控件显示服务端目录文件夹及文件
阅读量:5141 次
发布时间:2019-06-13

本文共 4188 字,大约阅读时间需要 13 分钟。

使用UserControl实现。
同时在用户控件上定义了委托,以实现与基页面的事件相结合。
VS2005 (Asp.net Ajax)
前端代码:
ContractedBlock.gif
ExpandedBlockStart.gif
Code
 1None.gif<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ServerAppFilePath.ascx.cs" Inherits="UserControl_ServerFilePath"%>
 2None.gif<div style="width:400px; background-color:#ffffff; border-right: black thin solid; border-top: black thin solid; border-left: black thin solid; border-bottom: black thin solid;">
 3None.gif<asp:Panel ID="pnlTreeview" runat="server" Height="400px" Width="400px" ScrollBars="Auto" BackColor="White">
 4None.gif    <asp:TreeView ID="treeFileView" runat="server" ImageSet="XPFileExplorer" NodeIndent="15" ShowLines="True" OnSelectedNodeChanged="treeFileView_SelectedNodeChanged">
 5None.gif        <ParentNodeStyle Font-Bold="False" />
 6None.gif        <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
 7None.gif        <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
 8None.gif            VerticalPadding="0px" />
 9None.gif        <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" HorizontalPadding="2px"
10None.gif            NodeSpacing="0px" VerticalPadding="2px" />
11None.gif    </asp:TreeView>
12None.gif</asp:Panel>
13None.gif</div>
后台代码:
ContractedBlock.gif
ExpandedBlockStart.gif
Code
  1None.gif//----------------------------------------------------------------------
  2None.gif// Ryan Wei
  3None.gif// Date:2008.05.08
  4None.gif//----------------------------------------------------------------------
  5None.gif// Description: 
  6None.gif//----------------------------------------------------------------------
  7None.gifusing System;
  8None.gifusing System.Data;
  9None.gifusing System.Configuration;
 10None.gifusing System.Collections;
 11None.gifusing System.Web;
 12None.gifusing System.Web.Security;
 13None.gifusing System.Web.UI;
 14None.gifusing System.Web.UI.WebControls;
 15None.gifusing System.Web.UI.WebControls.WebParts;
 16None.gifusing System.Web.UI.HtmlControls;
 17None.gifusing System.IO;
 18None.gif
 19None.gif//委托
 20None.gifpublic delegate void SelectedNodeChangedHandler(object sender, EventArgs e);
 21None.gif
 22None.gifpublic partial class UserControl_ServerFilePath : System.Web.UI.UserControl
 23ExpandedBlockStart.gifContractedBlock.gifdot.gif{
 24ContractedSubBlock.gifExpandedSubBlockStart.gif    Property#region Property
 25InBlock.gif    private string selectedFilePath;
 26InBlock.gif    public string SelectedFilePath
 27ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 28ExpandedSubBlockStart.gifContractedSubBlock.gif        set dot.gif{ selectedFilePath = value; }
 29ExpandedSubBlockStart.gifContractedSubBlock.gif        get dot.gifreturn selectedFilePath; }
 30ExpandedSubBlockEnd.gif    }
 31ExpandedSubBlockEnd.gif    #endregion
 32InBlock.gif
 33InBlock.gif    protected void Page_Load(object sender, EventArgs e)
 34ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 35InBlock.gif        if (!Page.IsPostBack)
 36ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 37InBlock.gif            TreeNode tn = new TreeNode();
 38InBlock.gif            //Root Name
 39InBlock.gif            tn.Text = "Root";
 40InBlock.gif            getDirectories(Server.MapPath("../Publish"), tn);
 41InBlock.gif            treeFileView.Nodes.Add(tn);
 42ExpandedSubBlockEnd.gif        }
 43ExpandedSubBlockEnd.gif    }
 44InBlock.gif
 45ContractedSubBlock.gifExpandedSubBlockStart.gif    Control Event#region Control Event
 46ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
 47InBlock.gif    /// 选择节点变化时
 48InBlock.gif    /// </summary>
 49InBlock.gif    /// <param name="sender"></param>
 50ExpandedSubBlockEnd.gif    /// <param name="e"></param>
 51InBlock.gif    protected void treeFileView_SelectedNodeChanged(object sender, EventArgs e)
 52ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 53InBlock.gif        SelectedFilePath = treeFileView.SelectedValue;
 54InBlock.gif        this.OnSelected(e);
 55ExpandedSubBlockEnd.gif    }
 56ExpandedSubBlockEnd.gif    #endregion
 57InBlock.gif
 58ContractedSubBlock.gifExpandedSubBlockStart.gif    Static Functions#region Static Functions
 59InBlock.gif
 60ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
 61InBlock.gif    /// 循环遍历获得某一目录下的所有文件信息
 62InBlock.gif    /// </summary>
 63InBlock.gif    /// <param name="path">目录名</param>
 64ExpandedSubBlockEnd.gif    /// <param name="tn">树节点</param>
 65InBlock.gif    private static void getDirectories(string path, TreeNode tn)
 66ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 67InBlock.gif        string[] fileNames = Directory.GetFiles(path);
 68InBlock.gif        string[] directories = Directory.GetDirectories(path);
 69InBlock.gif
 70InBlock.gif        //先遍历这个目录下的文件夹
 71InBlock.gif        foreach (string dir in directories)
 72ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 73InBlock.gif            TreeNode subtn = new TreeNode();
 74InBlock.gif            subtn.Value = dir;
 75InBlock.gif            subtn.Text = GetShorterFileName(dir);
 76InBlock.gif            subtn.ImageUrl = "../Images/doc.png";
 77InBlock.gif            subtn.Expanded = false;
 78InBlock.gif            getDirectories(dir, subtn);
 79InBlock.gif            tn.ChildNodes.Add(subtn);
 80ExpandedSubBlockEnd.gif        }
 81InBlock.gif
 82InBlock.gif        //再遍历这个目录下的文件
 83InBlock.gif        foreach (string file in fileNames)
 84ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
 85InBlock.gif            TreeNode subtn = new TreeNode();
 86InBlock.gif            if (".application".IndexOf(file.Substring(file.LastIndexOf("."+ 1)) > -1)
 87ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
 88InBlock.gif                subtn.ImageUrl = "../Images/file.png";
 89InBlock.gif                subtn.Value = file;
 90InBlock.gif                subtn.Text = GetShorterFileName(file);
 91InBlock.gif                //subtn.ShowCheckBox = true;
 92InBlock.gif                tn.ChildNodes.Add(subtn);
 93ExpandedSubBlockEnd.gif            }
 94ExpandedSubBlockEnd.gif        }
 95ExpandedSubBlockEnd.gif    }
 96InBlock.gif
 97ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
 98InBlock.gif    /// 滤去文件名前面的路径
 99InBlock.gif    /// </summary>
100InBlock.gif    /// <param name="filename"></param>
101ExpandedSubBlockEnd.gif    /// <returns></returns>
102InBlock.gif    private static string GetShorterFileName(string filename)
103ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
104InBlock.gif        return Path.GetFileName(filename); 
105ExpandedSubBlockEnd.gif    }
106ExpandedSubBlockEnd.gif    #endregion
107InBlock.gif
108ContractedSubBlock.gifExpandedSubBlockStart.gif    委托事件#region 委托事件
109InBlock.gif    public event SelectedNodeChangedHandler Selected;
110InBlock.gif
111InBlock.gif    protected void OnSelected(EventArgs e)
112ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
113InBlock.gif        if (Selected != null)
114ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
115InBlock.gif            Selected(this, e);
116ExpandedSubBlockEnd.gif        }
117ExpandedSubBlockEnd.gif    }
118ExpandedSubBlockEnd.gif    #endregion
     
119ExpandedBlockEnd.gif}
120None.gif
121None.gif

转载于:https://www.cnblogs.com/wyforumid/archive/2008/05/13/1195561.html

你可能感兴趣的文章
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
MySQL-定时任务
查看>>
web页面实现指定区域打印功能
查看>>
使用PHP拆分中文字符串的方法(收藏) 小节
查看>>
android系统权限的管理
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
因Window服务器自动更新并重启导致WebSphere服务停止服务故障一例
查看>>
如何开启safari的调试
查看>>
js深拷贝和浅拷贝
查看>>
node.js 基础学习笔记1
查看>>