zoukankan      html  css  js  c++  java
  • Jquery.Treeview+Jquery UI制作Web文件预览

    效果图:


    前台Html:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_26.QingShan.WebFileViewer._Default" %>
    
    <!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>Jquery.Treeview+Jquery UI制作Web文件预览</title>
            <%--JS--%>
            <script src="Scripts/jquery-1.9.1.js" type="text/javascript"> </script>
            <script src="Scripts/jquery.treeview/jquery.cookie.js" type="text/javascript"> </script>
            <script src="Scripts/jquery.treeview/jquery.treeview.js" type="text/javascript"> </script>
            <script src="Scripts/jquery-ui-1.10.3/jquery-ui-1.10.3.min.js" type="text/javascript"> </script>
            <%--CSS--%>
            <link href="Scripts/jquery-ui-1.10.3/css/start/jquery-ui.css" rel="stylesheet" type="text/css" />
            <link href="Scripts/jquery.treeview/jquery.treeview.css" rel="stylesheet"></link>
            <link href="Style/common.css" rel="stylesheet" type="text/css" /> 
        </head>
        <body>
            <form id="form1" runat="server">
                <div class="main">
                    <p>
                        文件预览</p>
                    <div class="mainContent">
                        <ul id="fileList" class="filetree">
                            <%= FileTreeHtml %></ul>
                        <script type="text/javascript">
                            $(function() {
                                //树形文件目录
                                $(".filetree").treeview();
                                //显示ToolTips
                                $(document).tooltip({
                                    items: ".file",
                                    track: true,
                                    content: function() {
                                        var element = $(this);
                                        var name = element.attr("name");
                                        var img = element.attr("img");
                                        if (img != "") {
                                            return "<img class='toolTips' alt='" + name + "' src='" + img + "'>";
                                        }
                                        return "";
                                    }
                                });
    
                            });
                        </script>
                    </div>
                </div>
            </form>
        </body>
    </html>
    后台代码:

    using System;
    using System.IO;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    
    namespace _26.QingShan.WebFileViewer
    {
        public partial class _Default : Page
        {
            protected string FileTreeHtml { get; set; }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    var directory = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/FileLibrary"));
                    if (Directory.Exists(directory.FullName))
                    {
                        FileTreeHtml = FileTreeHelper.GetGuideTree(new StringBuilder(), directory.FullName,
                                                                   directory.FullName);
                    }
                }
            }
        }
    }
    生成树形导航Html的类:

    using System;
    using System.IO;
    using System.Text;
    using System.Web;
    
    namespace Whir.WebSite.JavascriptDemos
    {
        /// <summary>
        ///     树形文件夹Html内容生成类
        /// </summary>
        public class FileTreeHelper
        {
            /// <summary>
            ///     生成树形文件Html
            /// </summary>
            /// <param name="builder">用于存放拼接的Html,由于是递归拼接,调用方法时,传入空的StringBuilder即可</param>
            /// <param name="path">要显示的服务器端文件夹路径(物理路径)</param>
            /// <param name="replacePath">要替换掉的路径部分</param>
            /// <returns></returns>
            public static string GetGuideTree(StringBuilder builder, string path, string replacePath)
            {
                var currentDir = new DirectoryInfo(path);
                DirectoryInfo[] subDirs = currentDir.GetDirectories();
                if (subDirs.Length > 0)
                {
                    builder.AppendFormat("<li><span class='folder' path='{0}'>{1}</span>" + Environment.NewLine,
                                         currentDir.FullName.Replace(replacePath, ""), currentDir.Name);
                    builder.Append("    <ul>" + Environment.NewLine);
                    foreach (DirectoryInfo dir in subDirs)
                    {
                        GetGuideTree(builder, dir.FullName, replacePath);
                    } 
                    FileInfo[] files = currentDir.GetFiles();
                    if (files.Length > 0)
                    {
                        foreach (FileInfo file in files)
                        {
                            string previewUrl = file.FullName.IsImage()
                                                    ? GetFileWebUrl(
                                                        file.FullName.Replace(HttpContext.Current.Server.MapPath("~/"), ""))
                                                    : string.Empty;
                            builder.AppendFormat("<li><span class='file' name='{0}' img='{1}' path='{2}'>{0}</span>" + Environment.NewLine, file.Name,
                                                 previewUrl, file.FullName.Replace(replacePath, ""));
                        }
                    }
    
                    builder.Append("    </ul>" + Environment.NewLine);
                    builder.Append("</li>" + Environment.NewLine);
                }
                else
                {
                    builder.AppendFormat("<li  class='closed'><span class='folder' path='{0}'>{1}</span>" + Environment.NewLine,
                                         currentDir.FullName.Replace(replacePath, ""), currentDir.Name);
                }
                return builder.ToString();
            }
    
            public static string GetFileWebUrl(string filePath)
            {
                if (filePath.IsEmpty())
                {
                    return string.Empty;
                }
                filePath = filePath.Replace("\", "/");
                if (filePath.StartsWith("/"))
                {
                    filePath = filePath.TrimStart('/');
                }
                return VirtualPathUtility.AppendTrailingSlash(HttpContext.Current.Request.ApplicationPath) + filePath;
            }
        }
    }


    完整Demo下载 http://download.csdn.net/detail/a497785609/6926313
    



  • 相关阅读:
    计数器
    ToString()方法的应用
    js阻止提交表单(post)
    跟随鼠标单击移动的div
    js实现CheckBox全选全不选
    生成n~m的随机数
    洛谷试炼场 动态规划TG.lv(3)
    洛谷试炼场 动态规划TG.lv(2)
    无题十一
    无题十
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3618402.html
Copyright © 2011-2022 走看看