zoukankan      html  css  js  c++  java
  • 一个非常有用的webpart文档列表添加文件夹树

    代码很简单:

    //test code by jianyi0115@163.com
    // 2008-11-19
    //
    //
    using System;
    using System.Collections;
    using System.Text;
    using sharepoint = Microsoft.SharePoint.WebControls ;
    using wss = Microsoft.SharePoint.WebPartPages;
    using System.Web.UI.WebControls  ;
    using System.Web.UI;
    using System.Web.UI.Design;
    using System.Runtime.InteropServices;
    using System.Web.UI.WebControls.WebParts;
    using System.Drawing;
    using System.ComponentModel;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;

    namespace ThinkingSoft
    {
        [Guid(
    "D55A1423-B38E-4c2e-9303-C234D7B7453E")]
        
    public class TreeListViewWebPart : wss.WebPart                
        {
            
    private string _ListUrl = "http://jyserver:9000/000/Forms/AllItems.aspx" ;
            [WebBrowsable]
            [PersonalizableAttribute]
            [DisplayName(
    "列表Url")]
            
    public string ListUrl
            {
                
    get { return _ListUrl; }
                
    set { _ListUrl = value; }
            }
            
            
    protected override void CreateChildControls()
            {
                
    base.CreateChildControls();
                
    try
                {
                    SPList list 
    = SPContext.Current.Web.GetList(_ListUrl);

                    SPView view 
    = list.DefaultView;

                    SPFolder f 
    = list.RootFolder;

                    TreeView tree 
    = new TreeView();
                    tree.ShowLines 
    = true;

                    
    string viewUrl = Page.Request.RawUrl;

                    
    if (viewUrl.IndexOf("?"!= -1)
                        viewUrl 
    = viewUrl.Split('?')[0];

                    viewUrl 
    += "?RootFolder=";

                    
    string currentUrl = Page.Request.QueryString["RootFolder"];

                    
    this.buildSub(viewUrl, f, tree.Nodes);

                    addHtml(
    "<table width='100%' border='1'><tr><td width='20%' valign='top'>");

                    
    this.Controls.Add(tree);

                    addHtml(
    "</td><td  valign='top'>");
                    
    this.Controls.Add(new LiteralControl(view.RenderAsHtml()));
                    addHtml(
    "</td></table>");
                }
                
    catch (Exception ex)
                {
                    addHtml(ex.Message);                
                }

            }
            
    void addHtml( string html )
            {
                
    this.Controls.Add(new LiteralControl(html));
            } 
            
    //创建文件夹树
            void buildSub( string viewUrl , SPFolder root , TreeNodeCollection nodes )
            {
                
    foreach (SPFolder f in root.SubFolders)
                {
                    
    if (f.Name.ToLower() == "forms"continue;

                    TreeNode n 
    = new TreeNode();
                    n.Text 
    = f.Name;
                    n.NavigateUrl 
    = viewUrl + f.Url;

                    nodes.Add(n);

                    buildSub( viewUrl , f , n.ChildNodes );
                }
            }       
        }
    }



  • 相关阅读:
    Docker容器彻底删除所有容器、删除所有镜像、删除所有卷、删除所有网络
    Fabric区块链浏览器启动报错Error : [ 'Explorer is closing due to channel name [%s] is already exist in DB'...]
    查看docker里面的Postgres数据库里面的信息
    将本地镜像推送到指定docker服务器
    linux 下 配置C++ 开发环境
    Go 发送邮件
    Ubuntu下使用nginx发布vue项目
    C++多线程之条件变量
    C/C++ 递归
    STL容器概述
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/964848.html
Copyright © 2011-2022 走看看