果图:
aspx页面代码:
Code
<asp:TreeView ID="tvFloder" runat="server" OnTreeNodeExpanded="tvFloder_TreeNodeExpanded">
</asp:TreeView>
<asp:TreeView ID="tvFloder" runat="server" OnTreeNodeExpanded="tvFloder_TreeNodeExpanded">
</asp:TreeView>
cs代码:
Code
TreeNode tn = new TreeNode();
tn.Text = "项目" + daSystem.DISPLAYNAME + "的文件夹";
string systemaddress = daSystem.Dlladdress;
if (systemaddress.ToLower().LastIndexOf("//bin") > 0)
systemaddress = systemaddress.Substring(0, systemaddress.ToLower().LastIndexOf("//bin"));
TreeNode subtn = new TreeNode();
subtn.Text = systemaddress.Substring(systemaddress.LastIndexOf("//") + 1).Replace("//", "/");
subtn.Value = systemaddress;
TreeNode tnThird = new TreeNode();
tnThird.Text = "临时节点,只为显示+号";
subtn.ChildNodes.Add(tnThird);
tn.ChildNodes.Add(subtn);
tvFloder.Nodes.Add(tn);
TreeNode tn = new TreeNode();
tn.Text = "项目" + daSystem.DISPLAYNAME + "的文件夹";
string systemaddress = daSystem.Dlladdress;
if (systemaddress.ToLower().LastIndexOf("//bin") > 0)
systemaddress = systemaddress.Substring(0, systemaddress.ToLower().LastIndexOf("//bin"));
TreeNode subtn = new TreeNode();
subtn.Text = systemaddress.Substring(systemaddress.LastIndexOf("//") + 1).Replace("//", "/");
subtn.Value = systemaddress;
TreeNode tnThird = new TreeNode();
tnThird.Text = "临时节点,只为显示+号";
subtn.ChildNodes.Add(tnThird);
tn.ChildNodes.Add(subtn);
tvFloder.Nodes.Add(tn);
Code
/// <summary>
/// 填充子文件夹
/// </summary>
protected void tvFloder_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
if (e.Node.Depth == 0)
return;
if (e.Node.ChildNodes[0].Value == "临时节点,只为显示+号")
e.Node.ChildNodes.Clear();
getDirectories(e.Node.Value, e.Node);
}
/// <summary>
/// 填充子文件夹
/// </summary>
protected void tvFloder_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
if (e.Node.Depth == 0)
return;
if (e.Node.ChildNodes[0].Value == "临时节点,只为显示+号")
e.Node.ChildNodes.Clear();
getDirectories(e.Node.Value, e.Node);
}
Code
/// <summary>
/// 循环遍历获得某一目录下的所有文件信息
/// </summary>
/// <param name="path">目录名</param>
/// <param name="tn">树节点</param>
private static void getDirectories(string path, TreeNode tn)
{
if (string.IsNullOrEmpty(path))
return;
if (!Directory.Exists(path))
return;
string[] directories = Directory.GetDirectories(path);
//先遍历这个目录下的文件夹
foreach (string dir in directories)
{
TreeNode subtn = new TreeNode();
subtn.Text = dir.Substring(dir.LastIndexOf("//") + 1).Replace("//", "/");
subtn.Expanded = false;
subtn.NavigateUrl = "javascript:ChooseFolder('" + dir.Substring(3, dir.Length - 3).Replace("//", "/") + "')";
getDirectories(dir, subtn);
tn.ChildNodes.Add(subtn);
}
}
/// <summary>
/// 循环遍历获得某一目录下的所有文件信息
/// </summary>
/// <param name="path">目录名</param>
/// <param name="tn">树节点</param>
private static void getDirectories(string path, TreeNode tn)
{
if (string.IsNullOrEmpty(path))
return;
if (!Directory.Exists(path))
return;
string[] directories = Directory.GetDirectories(path);
//先遍历这个目录下的文件夹
foreach (string dir in directories)
{
TreeNode subtn = new TreeNode();
subtn.Text = dir.Substring(dir.LastIndexOf("//") + 1).Replace("//", "/");
subtn.Expanded = false;
subtn.NavigateUrl = "javascript:ChooseFolder('" + dir.Substring(3, dir.Length - 3).Replace("//", "/") + "')";
getDirectories(dir, subtn);
tn.ChildNodes.Add(subtn);
}
}