我正在寻找一个控件或示例项目,使用treeview以递归方式浏览已定义文件夹的文件和文件夹。
我不知道是否有像这样的免费控制/样本项目?
提前致谢。
答案 0 :(得分:1)
请参阅我的文章 - Build a File tree explorer with asp.net and jquery。原始jquery文件在文章中指定的源代码中不再可用。但是,我有jquery文件,可以使它可用。
编辑:我会稍微发布一下代码。
代码如下:
首先,您需要服务器代码才能访问文件系统。这可以进入代码隐藏文件或aspx页面本身 - 只需删除其他所有内容。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dir As String
If Request.Form("dir") Is Nothing Or Request.Form("dir").Length <= 0 Then
dir = "/"
Else
dir = Request.Form("dir")
End If
Dim di As New System.IO.DirectoryInfo(Server.MapPath(dir))
Dim sb As New StringBuilder
sb.Append("<ul class=""jqueryFileTree"" style=""display: none;"">" & ControlChars.Lf)
Dim di_child As System.IO.DirectoryInfo
For Each di_child In di.GetDirectories()
sb.Append((ControlChars.Tab & "<li class=""directory collapsed""><a href=""#"" rel=""" & dir & di_child.Name & "/"">" & di_child.Name & "</a></li>" & ControlChars.Lf))
Next di_child
Dim fi As System.IO.FileInfo
For Each fi In di.GetFiles()
Dim ext As String = ""
If fi.Extension.Length > 1 Then
ext = fi.Extension.Substring(1).ToLower()
End If
sb.Append((ControlChars.Tab & "<li class=""file ext_" & ext & """><a href=""#"" rel=""" & dir & fi.Name & """>" & fi.Name & "</a></li>" & ControlChars.Lf))
Next fi
sb.Append("</ul>")
Response.Write(sb.ToString)
End Sub
接下来,您需要一个页面来显示文件树。该页面需要引用jquery核心文件和jquery文件树脚本。我碰巧在我的母版页中引用了jquery核心文件。
<link href="../styles/jqueryFileTree.css" rel="stylesheet" type="text/css" />
<script src="../scripts/jqueryFileTree.js" type="text/javascript"></script>
在显示文件树的页面中,粘贴此代码。 Root是要浏览的目录,filetree.aspx上面有服务代码。 div成为文件树。对于演示,我使用iframe作为文件查看器。
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function () {
$j('#divFileTree').fileTree({
root: '/demos/',
script: 'filetree.aspx',
expandSpeed: 1000,
collapseSpeed: 1000,
multiFolder: false
}, function (file) {
alert(file);
$j('#demoviewer').attr('src', file);
});
});
</script>
<div id="divFileTree"></div>